public function voirAction(Article $article) { $em = $this->getDoctrine()->getManager(); $request = $this->get('request'); $liste_articleCompetence = $this->getDoctrine()->getManager()->getRepository('SdzBlogBundle:ArticleCompetence')->findByArticle($article->getId()); return $this->render('SdzBlogBundle:Blog:voir.html.twig', array('article' => $article, 'liste_articleCompetence' => $liste_articleCompetence)); }
public function ajouterAction() { // on recupere l'entiteManager $em = $this->getDoctrine()->getManager(); //on cree un objet Article $article = new Article(); $article->setDate(new \Datetime()); $form = $this->createForm(new ArticleType(), $article); //on recupere la requete $request = $this->get('request'); // on verifie qu'elle est de type post if ($request->getMethod() == 'POST') { // on fait le lien requete <-> formulaire // apartir de la la variable $article comporte les valeur saisi dans le formulaire $form->bind($request); //on verifie que les valeur rentres sont corrects if ($form->isValid()) { # on enregistre notre notre objet $article dans la BDD, oubien envoyer par email, ou autre chose $em = $this->getDoctrine()->getManager(); $em->persist($article); $em->persist($article->getImage()); $em->flush(); //on redirige vers la page de visualisation de l4article nouvelle;ent cree return $this->redirect($this->generateUrl('sdzblog_accueil')); } } // a ce stade, soit : - la requete est de type GET , donc le visiteur vient d'arriver sur //la page et veut voir le formulaire. -soit la requete est de type POST, ,ais le form non valide // donc on l'affiche de nouveau return $this->render('SdzBlogBundle:Blog:ajouter.html.twig', array('form' => $form->createView())); }
public function load(ObjectManager $manager) { // Categories // $categorie1 = new Categorie; // $categorie1->setNom('Action'); // $categorie2 = new Categorie; // $categorie2->setNom('Legende'); // Commentaires $commentaire1 = new Commentaire(); $commentaire1->setAuteur('Louis Messi'); $commentaire1->setContenu('Très bon film'); $commentaire2 = new Commentaire(); $commentaire2->setAuteur('Louis Messi'); $commentaire2->setContenu('Film de combat'); $commentaire3 = new Commentaire(); $commentaire3->setAuteur('Louis Messi'); $commentaire3->setContenu('Très bon film'); $commentaire4 = new Commentaire(); $commentaire4->setAuteur('Louis Messi'); $commentaire4->setContenu('Film de combat'); // Competences $article1 = new Article(); $article1->setTitre('Amazone'); $article1->setAuteur('Louis Messi'); $article1->setContenu('Film au coeur de la forêt'); // $article1->addCategorie($categorie1); $article1->addCommentaire($commentaire1); $article1->addCommentaire($commentaire2); $article1->setNbCommentaires(2); $article2 = new Article(); $article2->setTitre('Xena'); $article2->setAuteur('Louis Messi'); $article2->setContenu('Film de légende'); // $article2->addCategorie($categorie2); $article2->addCommentaire($commentaire3); $article2->addCommentaire($commentaire4); $article2->setNbCommentaires(2); // On déclenche l'enregistrement $manager->persist($article1); $manager->persist($article2); $manager->flush(); }
public function setArticle(\Sdz\BlogBundle\Entity\Article $article) { $article->addArticleCompetence($this); $this->article = $article; }
/** * @Secure(roles="ROLE_AUTEUR") */ public function modifierAction(Article $article) { // --- Dans le cas où vous avez un champ "articleCompetences" dans le formulaire - 1/3 --- // On place dans un tableau les articleCompetences que contient l'article avant la soumission du formulaire // Si certains d'entre eux n'existent plus après la soumission, il faudra donc les supprimer $listeAc = array(); foreach ($article->getArticleCompetences() as $ac) { $listeAc[] = $ac; } // --- Fin du cas 1/3 --- // On utilise le ArticleEditType $form = $this->createForm(new ArticleEditType(), $article); $request = $this->getRequest(); if ($request->getMethod() == 'POST') { $form->bind($request); if ($form->isValid()) { // --- Dans le cas où vous avez un champ "articleCompetences" dans le formulaire - 2/3 --- // Au même titre que dans l'action d'ajout d'un article, on doit enregistrer // l'article et ses articleCompetences en deux fois $article->getArticleCompetences()->clear(); // --- Fin du cas 2/3 --- // On enregistre l'article $em = $this->getDoctrine()->getManager(); $em->persist($article); $em->flush(); // --- Dans le cas où vous avez un champ "articleCompetences" dans le formulaire - 3/3 --- // On enregistre les articleCompetences (propriétaire) maintenant que $article a un id foreach ($form->get('articleCompetences')->getData() as $ac) { $ac->setArticle($article); $em->persist($ac); } // Et on supprime les articleCompetences qui existaient au début mais plus maintenant foreach ($listeAc as $originalAc) { foreach ($form->get('articleCompetences')->getData() as $ac) { // Si $originalAc existe dans le formulaire, on sort de la boucle car pas besoin de la supprimer if ($originalAc == $ac) { continue 2; } } // $originalAc n'existe plus dans le formulaire, on la supprime $em->remove($originalAc); } $em->flush(); // --- Fin du cas 3/3 --- // On définit un message flash $this->get('session')->getFlashBag()->add('info', 'Article bien modifié'); return $this->redirect($this->generateUrl('sdzblog_voir', array('slug' => $article->getSlug()))); } } return $this->render('SdzBlogBundle:Blog:modifier.html.twig', array('form' => $form->createView(), 'article' => $article)); }
public function setArticle(\Sdz\BlogBundle\Entity\Article $article) { $article->tag($this); $this->article = $article; }