/** * @Route("/post/add/{id}", name="addPost") */ public function addAction($id, Request $request) { $em = $this->getDoctrine()->getManager(); $topic = $em->getRepository('AppBundle:Topic')->find($id); if (!$topic) { throw $this->createNotFoundException('No Topic found for id ' . $id); } $post = new Post(); $post->setDate(new \DateTime('now')); $loggedIn = false; $securityContext = $this->container->get('security.authorization_checker'); if ($securityContext->isGranted('IS_AUTHENTICATED_FULLY')) { $token = $this->get('security.token_storage')->getToken(); /* @var $user User */ $user = $token->getUser(); $post->setAuthor($user); $post->setTopic($topic); $loggedIn = true; } $form = $this->createFormBuilder($post)->add('content', TextareaType::class)->add('save', SubmitType::class, array('label' => 'Reply'))->getForm(); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $em->persist($post); $em->flush(); return $this->render('Topic/watch.html.twig', array('topic' => $topic, 'form' => $form->createView(), 'loggedIn' => $loggedIn)); } return $this->render('Post/add.html.twig', array('topic' => $topic, 'form' => $form->createView(), 'loggedIn' => $loggedIn)); }
public function create($owner, Topic $topic, $content, $isSticky = false) { $entity = new Post(); $entity->setContent($content); $entity->setUserId($owner); $entity->setTopic($topic); $entity->setIsSticky($isSticky); $entityManager = $this->getEntityManager(); $entityManager->persist($entity); $entityManager->flush(); return $entity; }