IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Modifier une entité imbriquée dans un formulaire. [2.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 53
    Par défaut Modifier une entité imbriquée dans un formulaire.
    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 :-)

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 53
    Par défaut
    Résolu

    en remplaçant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $em->flush($pays);
    par

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 02/03/2006, 14h58
  2. Réponses: 2
    Dernier message: 11/01/2006, 15h49
  3. Réponses: 1
    Dernier message: 20/12/2005, 15h56
  4. Comment modifier une page affichée dans un TWebBrowser ?
    Par dreamincoco dans le forum Composants VCL
    Réponses: 7
    Dernier message: 24/03/2005, 14h07
  5. Réponses: 2
    Dernier message: 11/12/2004, 21h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo