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(); }