getUser()); $form = $this->createForm(new NewTagType(), $tag); $form->handleRequest($request); if ($form->isValid()) { $existingTag = $this->getDoctrine() ->getRepository('WallabagCoreBundle:Tag') ->findOneByLabelAndUserId($tag->getLabel(), $this->getUser()->getId()); $em = $this->getDoctrine()->getManager(); if (is_null($existingTag)) { $entry->addTag($tag); $em->persist($tag); } else { if (!$existingTag->hasEntry($entry)) { $entry->addTag($existingTag); $em->persist($existingTag); } } $em->flush(); $this->get('session')->getFlashBag()->add( 'notice', 'Tag added' ); return $this->redirect($this->generateUrl('view', array('id' => $entry->getId()))); } return $this->render('WallabagCoreBundle:Tag:new_form.html.twig', array( 'form' => $form->createView(), 'entry' => $entry, )); } /** * Shows tags for current user. * * @Route("/tag/list", name="tag") * * @return \Symfony\Component\HttpFoundation\Response */ public function showTagAction() { $tags = $this->getDoctrine() ->getRepository('WallabagCoreBundle:Tag') ->findTags($this->getUser()->getId()); return $this->render( 'WallabagCoreBundle:Tag:tags.html.twig', array( 'tags' => $tags, ) ); } }