Autorisé un array dans un formulaire

a marqué ce sujet comme résolu.

Bonjour,

Dans le cadre du développement de mon API Rest sous Symfony 3 je souhaite stocker dans une de mes entité un tableau de paramètres pour l'application cliente.

Dans la mesure du possible j'aimerai bien ne pas à avoir explicitement besoin d'annoncer l'ensemble des paramètres que je permet à l'application de gérer, il y en as des dizaines.

Du coup je me suis dit que cela serai chouette de directement stocker le tableau de paramètre que l'application envoie, le type array de doctrine me permettant d'arriver à ce résultat.

Là où je coince c'est au niveau du formulaire, comment lui faire avaler que cet attribut peu accepter un tableau de "Machin", il y a bien CollectionType le problème étant qu'il faut lui préciser un type de donnée… hors justement j'en ai aucun. C'est un tableau associatif que je souhaite conserver.

Auriez-vous une idée ou suis-je réellement obliger de déclarer un à un l'ensemble des paramètres ?

Merci d'avance pour votre aide.
Cordialement, La source.

+0 -1

Je n'ai pas le temps de faire une recherche avancée maintennat mais il y a quelque temps, j'avais posé une question pour savoir comment je pouvais faire pour avoir une simple zone de texte permettant d'entrer une liste d'utilisateurs séparés par des virgules. Je pense que pour ton cas ça pourrait peut-être t'aider.

L'idée c'est de faire deux classe, un XXXType personnalisé qui est enregistré en tant que service, et un DataTransformer.

+0 -0

Salut !

Ces paramètres, tu souhaites pouvoir saisir quoi comme informations ?

Si on part sur une paire clé-valeur, je pense qu'un type personnalisé (où la clé et la valeur sont deux champs distincts) dans une collection pourrait fonctionner.
Si ce sont simplement des valeurs, tu peux effectivement utiliser un DataTransformer qui transforme une liste de données en une chaîne et vice-versa.
Et si vraiment, tu peux décider d'une syntaxe qui te permet d'avoir ton champ texte et tes paires clé-valeur sous forme de chaîne, et récupérer ensuite le tableau.

La discussion à laquelle fait allusion QuentinC est probablement celle-ci

+0 -0

L'application cliente est une application javascript, elle doit stocker un ensemble de paramètres lié à l'affichage (savoir si on doit ou non afficher tel ou tel élément et ainsi de suite).

Ces paramètres ne sont pas propre qu'a un client mais à un ensemble, par conséquent je les stocke dans mon API afin que les paramètres soie accessible à cet ensemble et si l'un des client modifie un paramètre les autres clients y auront également accès.

Coté application les paramètres c'est un tableau json avec effectivement un jeu de paire clé => valeur. Idéalement pour ne pas à avoir alourdir inutilement le code cela aurai été pratique de bêtement soumettre ce tableau sur une route donnée. Comme je le fait pour toute les autres ressources d'ailleurs ^^

La seule différence étant que c'est pénible de devoir spécifier une entité dans Symfony dans laquelle je vais devoir spécifier tous les paramètres, puis créer un formulaire autorisant cet ensemble de paramètres alors qu'au final, du point de vue de l'API… bah je m'en fou, seule l'application cliente ira lire ces paramètres…

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte