コード例 #1
0
 public function addAction(Request $request)
 {
     // On crée un objet Advert
     $advert = new Advert();
     /**$advert ->setTitre("Couscous");
         $advert ->setAuteur("Myriam");
         $advert->setPreparation("Préparation qui dure 2h30 environ");
         $advert ->setIngredients("des légumes");
         $advert ->setImage("http://jonoandjules.files.wordpress.com/2012/01/the-ultimate-winter-couscous-1.jpg");
     
      // On récupère l'EntityManager
        $em = $this->getDoctrine()->getEntityManager();
        $advertRepository = $em->getRepository('EsieaBlogBundle:Advert');
     // Étape 1 : On « persiste » l'entité
         $em->persist($advert);
     
         // Étape 2 : On « flush » tout ce qui a été persisté avant
         $em->flush();**/
     // Si la requête est en POST, c'est que le visiteur a soumis le formulaire
     /**if ($request->isMethod('POST')) {
                 // Ici, on s'occupera de la création et de la gestion du formulaire
     
                 $request->getSession()->getFlashBag()->add('notice', 'Annonce bien enregistrée.');
     
                 // Puis on redirige vers la page de visualisation de cettte annonce
                 return $this->redirect($this->generateUrl('esiea_blog_view', array('id' => $advert->getId())));
             }**/
     $advert->setDate(new \Datetime());
     // Et on construit le formBuilder avec cette instance d'annonce
     $formBuilder = $this->get('form.factory')->createBuilder('form', $advert);
     $form = $this->get('form.factory')->createBuilder('form', $advert)->add('date', 'datetime')->add('titre', 'text')->add('auteur', 'text')->add('ingredients', 'textarea')->add('preparation', 'textarea')->add('save', 'submit')->getForm();
     // À partir de maintenant, la variable $advert contient les valeurs entrées dans le formulaire par le visiteur
     $form->handleRequest($request);
     // On vérifie que les valeurs entrées sont correctes
     // (Nous verrons la validation des objets en détail dans le prochain chapitre)
     if ($form->isValid()) {
         // On l'enregistre notre objet $advert dans la base de données, par exemple
         $em = $this->getDoctrine()->getManager();
         $em->persist($advert);
         $em->flush();
         $request->getSession()->getFlashBag()->add('notice', 'Annonce bien enregistrée.');
         // On redirige vers la page de visualisation de l'annonce nouvellement créée
         return $this->redirect($this->generateUrl('esiea_blog_view', array('id' => $advert->getId())));
     }
     // On passe la méthode createView() du formulaire à la vue
     // afin qu'elle puisse afficher le formulaire toute seule
     return $this->render('EsieaBlogBundle:Advert:add.html.twig', array('form' => $form->createView()));
 }
 /**
  * {@inheritDoc}
  */
 public function getPreparation()
 {
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'getPreparation', array());
     return parent::getPreparation();
 }