Bonjour,

J'ai un soucis avec un formulaire.

J'ai un objet pays qui est relié à à un ojet "non", un objet "classement" et un "objet initiale" avec la relation OneToMany.

Mon formulaire pour créer mon pays avec les sous-objets fonctionne avec ce code dans mon controleur.

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
 
  public function ajouter_paysAction()
  {
 
 
 
    $pays = new Pays();
    $initiale = new PaysHistoriqueInitiale();
    $nom = new PaysHistoriqueNom();
    $nomclassement = new PaysHistoriqueNomClassement();
 
    $pays->addInitiale($initiale);
    $pays->addNom($nom);
    $pays->addNomclassement($nomclassement);
 
 
    $initiale->setPays($pays);
    $nom->setPays($pays);
    $nomclassement->setPays($pays);
 
 
    $form = $this->createForm(new PaysType, $pays);
 
    $request = $this->get('request');
    if( $request->getMethod() == 'POST' )
    {
 
    $form->bind($request);
 
 
 
    if( $form->isValid() )
    { 
 
    $em = $this->getDoctrine()->getEntityManager();
    $em->persist($pays);
    $em->flush($pays);
 
    return $this->redirect($this->generateUrl('geo_voir_pays',
                array('id_pays' => $pays->getId())));
 
 
    }
Pas de soucis tout fonctionne bien.

Par contre, je n'arrive pas à faire des modification sur le pays.

J'ai le code suivant :

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
 
      public function editer_paysAction($id_pays)
  {
 
 
 
 
    $pays = $this->getDoctrine()
                ->getManager()
                ->getRepository('OpengenGeoBundle:Pays')
                ->find($id_pays);
 
 
 
 
 
 
    $form = $this->createForm(new PaysType, $pays);
 
    $request = $this->get('request');
    if( $request->getMethod() == 'POST' )
    {
 
    $form->bind($request);
 
 
 
    if( $form->isValid() )
    { 
 
 
    $em = $this->getDoctrine()->getEntityManager();
    $em->persist($pays);
    $em->flush($pays);
 
    return $this->redirect($this->generateUrl('geo_voir_pays',
                array('id_pays' => $pays->getId())));
 
 
    }
 
    }
       return $this->render('OpengenGeoBundle:Geo:ajouter_pays.html.twig',
       array(
       'form' => $form->createView(),
       )
               );
   }
Le formulaire se charge très bien avec les champs pré-remplis, mais quand je valide, rien n'est pris un compte : la fiche du pays est afichée mais les modifications ne sont pas passées. Rien en BDD.

Si je fais un

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 if( $form->isValid() )
    { 
 
        var_dump($pays);
        die();
Je vois que les modifications n'ont pas été apportées à l'objet....


Il ya un truc qui m'échappe là :-(

Si quelqu'un voit le hic je prends :-)