Bonjour,
je suis confronté à un problème pour un formulaire assez compliqué (que j'ai réussi à faire en php "classique" mais sous le framework sympfony2, je ne trouve pas...)
Donc voilà, en gros c'est un formulaire pour enregistrer un produit en base de donnée. Cependant, et pour optimiser le tout, les produits étant de nature différentes, l'objet "produit" ne contient pas tous les champs d'informations possibles pour tous les produits, mais est à la place lié à des enregistrements d'objet Fields. (j'ai donc dans "produit" un manytoone avec un champs fieldsval qui contient des objet FieldValue (avec à l'intérieur l'id du produit, l'id du Field et la valeur).
Ainsi pour mon formulaire, je veux d'abord choisir la catégorie de l'objet, puis les fields qui lui sont rattaché apparaissent sous forme d'input (ca j'arrive à le faire en ajax/JS) mais lorsque je fais le submit, symfony2 me met que j'ai des input en trop dans mon form (ce qui est normal vu que les input sont généré dynamiquement et n'apparaisse pas dans le produitType.)
J'ai donc essayé des faire des formulaires imbriqués mais ca ne fonctionne pas du tout comme je l'aurai espérer
dans mon ProduitType, j'ai ajouté :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ->add('fields', 'collection', array('type' => new FieldValueType(), 'allow_add' => true, 'allow_delete' => true, 'by_reference' => false))
avec FieldValueType qui contient une valeur et l'id du Field
mais à part faire comme dans l'exemple du tuto de la doc offi et ajouter ou supprimer ces champs en cliquant sur un bouton (ce qui ne m'intéresse pas), je n'arrive pas à faire ce que je souhaite.
Je suppose qu'il faudrait que j'utilise du JS pour modifier dynamiquement le "data-prototype" généré car il contient tout les input et tout mais celui-ci est tellement illisible à mes yeux que je suis un peu perdu... Il faudrait que je puisse modifier les labels des input générés et mettre le champ "idfield" en hidden, ainsi qu'une valeur par défaut selon le field.
Bref, ca fait un peu de temps que je me prend la tête avec ca et j'hésite fortement à simplement laisser tomber mon "produitType" et faire un formulaire à l'ancienne...
Merci par avance pour les réponses s'il y en a =)
Partager