src/Controller/PageController.php line 50

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Page;
  4. use App\Form\PageType;
  5. use App\Repository\PageRepository;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. #[Route('/page')]
  12. class PageController extends AbstractController
  13. {
  14.     // public function __construct(
  15.     //     private readonly EntityManagerInterface $em,
  16.     // ) {
  17.     // }
  18.     #[Route('/'name'app_page_index'methods: ['GET'])]
  19.     public function index(PageRepository $pageRepository): Response
  20.     {
  21.         return $this->render('page/index.html.twig', [
  22.             'pages' => $pageRepository->findAll(),
  23.         ]);
  24.     }
  25.     #[Route('/new'name'app_page_new'methods: ['GET''POST'])]
  26.     public function new(Request $requestPageRepository $pageRepository): Response
  27.     {
  28.         $page = new Page();
  29.         $form $this->createForm(PageType::class, $page);
  30.         $form->handleRequest($request);
  31.         if ($form->isSubmitted() && $form->isValid()) {
  32.             $pageRepository->add($page);
  33.             return $this->redirectToRoute('app_page_index', [], Response::HTTP_SEE_OTHER);
  34.         }
  35.         return $this->renderForm('page/new.html.twig', [
  36.             'page' => $page,
  37.             'form' => $form,
  38.         ]);
  39.     }
  40.     #[Route('/{slug}'name'app_page_show'methods: ['GET'])]
  41.     public function show(Page $pageRequest $request): Response
  42.     {
  43.         if ($page->getSlug() == 'homepage') {
  44.             return $this->redirectToRoute('front_homepage');
  45.         }
  46.         return $this->render('page/show.html.twig', [
  47.             'page' => $page,
  48.         ]);
  49.     }
  50.     #[Route('/{id}/edit'name'app_page_edit'methods: ['GET''POST'])]
  51.     public function edit(Request $requestPage $pagePageRepository $pageRepository): Response
  52.     {
  53.         $form $this->createForm(PageType::class, $page);
  54.         $form->handleRequest($request);
  55.         if ($form->isSubmitted() && $form->isValid()) {
  56.             $pageRepository->add($page);
  57.             return $this->redirectToRoute('app_page_index', [], Response::HTTP_SEE_OTHER);
  58.         }
  59.         return $this->renderForm('page/edit.html.twig', [
  60.             'page' => $page,
  61.             'form' => $form,
  62.         ]);
  63.     }
  64.     #[Route('/{id}'name'app_page_delete'methods: ['POST'])]
  65.     public function delete(Request $requestPage $pagePageRepository $pageRepository): Response
  66.     {
  67.         if ($this->isCsrfTokenValid('delete'.$page->getId(), $request->request->get('_token'))) {
  68.             $pageRepository->remove($page);
  69.         }
  70.         return $this->redirectToRoute('app_page_index', [], Response::HTTP_SEE_OTHER);
  71.     }
  72. }