Bonjour,
Je souhaiterais pouvoir persister en un seul formulaire deux instances d'une même entité. Pour cela, j'ai créé un formulaire en appelant deux fois la méthode createForm (avec les mêmes arguments...) depuis un controlleur. Je suppose que cette pratique est douteuse. Voici le code que j'ai placé dans celui-ci :
la classe NoeudType :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public function newAction($id, $nb) { $forms = array(); for ($i = 1; $i <= $nb; $i++) { $entity = new Noeud(); $forms[] = $this->createForm(new NoeudType(), $entity)->createView(); } return $this->render('PaipaiCatalogueBundle:Noeud:remplircontenu.html.twig', array( 'forms' => $forms, 'id' => $id )); }
le fichier twig associé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 class NoeudType extends AbstractType { public function buildForm(FormBuilder $builder, array $options) { $builder ->add('nom') ; } }
Avec ce code, les 2 champs texte ont le même attribut name (il est composé du nom de l'entité suivi du nom de la propriété entre crochet). J'imagine que c'est normal puisque j'instancie deux formulaires sans établir de lien entre eux... Au final je ne récupère les infos que sur une seule instance. Comment pensez vous faire ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <form action="{{ path('noeud_creercontenu4', { 'id': id}) }}" method="post" {{ form_enctype(forms[0]) }}> {% for formulaire in forms %} {{ form_widget(formulaire) }} {% endfor %} <p> <button type="submit">Create</button> </p> </form>
Merci d'avance et bonne journée
Partager