Bonjour,

Je me tourne vers vous car j'ai un soucis que je n'arrive pas à résoudre.
J'ai une page Annonce où on rempli tous les champs du formulaire de l'annonce qu'on envoi ensuite. A ce moment là, je ne souhaite pas encore "flush" mon entité, en effet il y a d'abord une page de confirmation, qui récapitule les données saisies. Une fois cette page validée, c'est à ce moment là que je souhaite effectuer mon flush.

J'ai fait la méthode "simple" et ça ne marche pas :

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
 
        if ($request->get("validate") != null) {
            $em = $this->getDoctrine()->getManager();
            $em->flush();
 
            return $this->redirect($this->generateUrl('index'), 301) ;
        }
 
        $annonce = new Annonce();
 
        $formDepotAnnonce = $this->createFormBuilder($annonce)
            ->add('departement', 'entity', array(
                'class' => 'TUA\EntitiesBundle\Entity\Departement',
                'empty_value' => 'Département'))
            ->add('ville', 'text')
            ->add('categorie', 'entity', array(
                'class' => 'TUA\EntitiesBundle\Entity\Categorie',
                'empty_value' => 'Catégorie'))
            ->add('titre', 'text')
            ->add('description', 'text')
            ->add('prix', 'text')
            ->add('commission', 'text')
            ->getForm();
 
        $formDepotAnnonce->handleRequest($request);
 
        if ($formDepotAnnonce->isValid()) {
 
            $user = $this->getUser();
            $annonce->setUser($user);
            $em->persist($annonce);
 
            return $this->render('TUAAnnonceBundle:DeposerAnnonce:deposer_annonce2.html.twig', array('annonce' => $annonce));
        }      
 
        return $this->render('TUAAnnonceBundle:DeposerAnnonce:deposer_annonce.html.twig', array('formDepotAnnonce' => $formDepotAnnonce->createView()));
Avec cette méthode, je n'ai pas d'erreur mais mon annonce n'est pas enregistrée en BDD.

J'ai essayé de stocker l'objet annonce en session, mais j'ai des erreurs de sérialization que je n'arrive pas à résoudre non plus...

Ma question est donc, comment est-ce que je peux enregistrer mon entité annonce en BDD uniquement après la validation sur la 2ème page ?

Je vous remercie.