Example #1
0
 /**
  * @Route("/view/add/{type}", name="view.add")
  */
 public function addAction($type, Request $request)
 {
     /** @var EntityManager $em */
     $em = $this->getDoctrine()->getManager();
     /** @var ContentTypeRepository $contentTypeRepository */
     $contentTypeRepository = $em->getRepository('AppBundle:ContentType');
     $contentTypes = $contentTypeRepository->findBy(['deleted' => false, 'name' => $type]);
     if (!$contentTypes || count($contentTypes) != 1) {
         throw new NotFoundHttpException('Content type not found');
     }
     $view = new View();
     $view->setContentType($contentTypes[0]);
     $form = $this->createForm(ViewType::class, $view);
     $form->handleRequest($request);
     if ($form->isSubmitted() && $form->isValid()) {
         $em->persist($view);
         $em->flush();
         $this->addFlash('notice', 'A new view has been created');
         return $this->redirectToRoute('view.edit', ['id' => $view->getId()]);
     }
     return $this->render('view/add.html.twig', ['contentType' => $contentTypes[0], 'form' => $form->createView()]);
 }