findAll(); $titles=[]; foreach ( $polls as $poll ) { $titles[] = $poll->getTitle(); } return $this->render('poll/index.html.twig', [ 'count' => count($polls), 'titles' => $titles, 'polls' => $polls, ]); } /** * @Route("/new", name="poll_new", methods={"GET","POST"}) */ public function new(Request $request): Response { $poll = new Poll(); $form = $this->createForm(PollType::class, $poll); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $entityManager = $this->getDoctrine()->getManager(); $entityManager->persist($poll); $entityManager->flush(); return $this->redirectToRoute('poll_index'); } return $this->render('poll/new.html.twig', [ 'poll' => $poll, 'form' => $form->createView(), ]); } /** * on cherche un sondage par son url personnalisée * @Route("/{id}", name="poll_show", methods={"GET"}) */ public function show($id): Response { $repository = $this->getDoctrine()->getRepository(Poll::class); $foundPoll = $repository->findOneByCustomUrl($id); if(!$foundPoll){ return $this->json([ 'message' => $id.' : not found' ], 404); } return $this->render('poll/show.html.twig', [ 'poll' => $foundPoll, ]); } /** * @Route("/{id}/edit", name="poll_edit", methods={"GET","POST"}) */ public function edit(Request $request, Poll $poll): Response { $form = $this->createForm(PollType::class, $poll); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $this->getDoctrine()->getManager()->flush(); return $this->redirectToRoute('poll_index'); } return $this->render('poll/edit.html.twig', [ 'poll' => $poll, 'form' => $form->createView(), ]); } /** * @Route("/{id}", name="poll_delete", methods={"DELETE"}) */ public function delete(Request $request, Poll $poll): Response { if ($this->isCsrfTokenValid('delete'.$poll->getId(), $request->request->get('_token'))) { $entityManager = $this->getDoctrine()->getManager(); $entityManager->remove($poll); $entityManager->flush(); } return $this->redirectToRoute('poll_index'); } }