public function onSuccess(Article $article) { $article->setUser($this->user); // On met l'article à la date courante $article->setDate(new \DateTime('now')); $this->em->persist($article); // On fait appel au DataTranformer pour découper la chaine de tags, puis on les enregistre //$this->em->getRepository('HeliosBlogBundle:Tag')->findAll(); foreach ($article->getTags() as $tag) { $this->em->persist($tag); } /*// --- Début de notre fonctionnalité BigBrother --- // On crée l'évènement $event = new MessagePostEvent($article->getContenu(), $this->getUser()); // On déclenche l'évènement $this->get('event_dispatcher') ->dispatch(BigbrotherEvents::onMessagePost, $event); // On récupère ce qui a été modifié par le ou les listener(s), ici le message $article->setContenu($event->getMessage()); // --- Fin de notre fonctionnalité BigBrother --- $article->getArticleCompetences()->clear(); // On enregistre l'objet $article dans la base de données $em->persist($article); $em->flush(); foreach ($form->get('articleCompetences')->getData() as $ac) { $ac->setArticle($article); $em->persist($ac); } $em->flush(); // On définit un message flash $this->get('session')->getFlashBag()->add('info', 'Article bien ajouté'); // On redirige vers la page de visualisation de l'article nouvellement créé return $this->redirect($this->generateUrl('heliosblog_accueil', array('blog' => $request->get('blog')))); */ $this->em->flush(); }
public function modifierAction(Article $article) { $listeAc = array(); foreach ($article->getArticleCompetences() as $ac) { $listeAc[] = $ac; } // On utilise le ArticleEditType $form = $this->createForm(new ArticleEditType(), $article); $request = $this->getRequest(); if ($request->getMethod() == 'POST') { $form->bind($request); if ($form->isValid()) { $article->getArticleCompetences()->clear(); // On enregistre l'article $em = $this->getDoctrine()->getManager(); $em->persist($article); $em->flush(); 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(); // On définit un message flash $this->get('session')->getFlashBag()->add('info', 'Article bien modifié'); return $this->redirect($this->generateUrl('heliosblog_accueil', array('blog' => $request->get('blog')))); } } return $this->render('HeliosBlogBundle:Blog:modifier.html.twig', array('form' => $form->createView(), 'article' => $article)); }
public function setArticle(\Helios\BlogBundle\Entity\Article $article) { $article->addArticleCompetence($this); $this->article = $article; }