je met le code puis j'explique un peu

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
 
public function indexAction()
    {
        $commentaire = new Commentaire();
       $commentateur = new Commentateur();
 
        $form1 = $this->createFormBuilder($commentateur)
            ->add('speudo','text')
            ->add('password','password')
            ->add('adresseemail','text')
            ->getForm();
 
        $form2 = $this->createFormBuilder($commentaire)
            ->add('contenu','textarea')
            ->add('datecreationcommentaire','datetime', array(
                'widget' => 'single_text',
                'format' => 'dd-MM-yyyy hh:mm:ss',
            ))
            ->add('idcommentateur')
            ->getForm();
 
        $request = $this->get('request');
 
        if ($request->getMethod() == 'POST') {
            $form1->bind($request);
            if ($form1->isValid()) {
                $em = $this->getDoctrine()->getManager();
                $em->persist($commentateur);
                $em->flush();
                return new Response('ok commentateur');
 
            }
        }
 
        if ($request->getMethod() == 'POST') {
            $form2->bind($request);
            if ($form2->isValid()) {
                $em = $this->getDoctrine()->getManager();
                $em->persist($commentaire);
                $em->flush();
                return new Response('ok commentaire');
 
            }
        }
 
        return $this->render('LaLingerieBundle:Default:index.html.twig', array(
            'form' => $form1->createView(),
            'fom2' => $form2 ->createView()));
 
    }
On construit deux formulaires form1 et form2 que vous pourrez ajouter un à même template twig.
les deux premiers tests attendent la validation d'un formulaire hors comme au commencement aucun formulaire n'a été afficher ces deux premier tests ne sont pas validé.
Puis enfin les deux formulaire sont affichés sur le template.
Et là un formulaire sur les deux peut être valider par un des deux tests.
voilà bonne lecture. Il faut faire attention aux return.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
return $this->render('LaLingerieBundle:Default:index.html.twig', array(
            'form' => $form1->createView(),
            'fom2' => $form2 ->createView()));
Ce dernier return affiche les deux formulaires mais n'arrétent pas le traitement. En effet il sert à retourner les deux formulaires et les affiche.
Puis il y a attente de validation d'un des formulaires.