src/Controller/SlideController.php line 27

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Slide;
  4. use App\Service\FileUploader;
  5. use App\Repository\MenuRepository;
  6. use App\Repository\SlideRepository;
  7. use Doctrine\ORM\EntityManagerInterface;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use Symfony\Component\Validator\Validator\ValidatorInterface;
  12. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  13. class SlideController extends AbstractController
  14. {
  15.     private $em;
  16.     public function __construct(EntityManagerInterface $em)
  17.     {
  18.         $this->em $em;
  19.     }
  20.     
  21.     #[Route('/admin/slide'name'app_slide_index'methods: ['GET','POST'])]
  22.     public function index(SlideRepository $slideRepository): Response
  23.     {
  24.         return $this->render('slide/index.html.twig', [
  25.             'slids' => $slideRepository->findAll(),
  26.         ]);
  27.     }
  28.     #[Route('/admin/slide/new'name'app_slide_new')]
  29.     public function new(FileUploader $fileUploaderValidatorInterface $validatorRequest $request,SlideRepository $slideRepository,MenuRepository $menuRepository): Response
  30.     {
  31.         $submit $request->request->get('submit');
  32.         $errors null;
  33.         if ($submit) {
  34.             $slide = new Slide();
  35.             $slide->setIntitule($request->request->get('libelle'));
  36.             if ($request->files->get('file')) {
  37.                 $FileName $fileUploader->upload($request->files->get('file'));
  38.                 $slide->setImage($FileName);
  39.             }
  40.             $errors $validator->validate($slide);
  41.             if (count($errors) > 0) {
  42.                 $errorsString = (string) $errors;
  43.             } else {
  44.                 $this->em->persist($slide);
  45.                 $this->em->flush();
  46.                 return $this->redirectToRoute('app_slide_index', [], Response::HTTP_SEE_OTHER);
  47.             }
  48.         }
  49.         return $this->render('slide/new.html.twig', [
  50.             'slids'=> $slideRepository->findAll(),
  51.             'menus' => $menuRepository->findAll(),
  52.             'errors' => $errors,
  53.         ]);
  54.     }
  55.       
  56.     #[Route('/admin/slide/edit/{id}/'name'app_slide_edit'methods: ['GET''POST'])]
  57.     public function edit(FileUploader $fileUploaderValidatorInterface $validatorRequest $requestSlide $slideSlideRepository $slideRepository,
  58.      MenuRepository $menuRepository): Response
  59.     {
  60.         $submit $request->request->get('submit');
  61.         $errors null;
  62.         if ($submit) {
  63.             $slide->setIntitule($request->request->get('libelle'));
  64.             if ($request->files->get('file')) {
  65.                 $FileName $fileUploader->upload($request->files->get('file'));
  66.                 $slide->setImage($FileName);
  67.             }
  68.             $errors $validator->validate($slide);
  69.             if (count($errors) > 0) {
  70.                 $errorsString = (string) $errors;
  71.             } else {
  72.                 $this->em->persist($slide);
  73.                 $this->em->flush();
  74.                 return $this->redirectToRoute('app_slide_index', [], Response::HTTP_SEE_OTHER);
  75.             }
  76.         }
  77.         return $this->render('slide/edit.html.twig', [
  78.             'slids'=> $slideRepository->findAll(),
  79.             'idSlide'=> $slide->getId(),
  80.             'menus' => $menuRepository->findAll(),
  81.             'errors' => $errors,
  82.         ]);
  83.     }
  84.     #[Route('/admin/slide/supprimer/{id}'name'app_slide_delete'methods: ['POST'])]
  85.     public function delete(Request $requestSlide $slideMenuRepository $menuRepository): Response
  86.     {   
  87.         //dd( $menu);
  88.         if ($this->isCsrfTokenValid('delete'.$slide->getId(), $request->request->get('_token'))) {
  89.             $this->em->remove($slide);
  90.             $this->em->flush();
  91.         }
  92.         return $this->redirectToRoute('app_slide_index', [], Response::HTTP_SEE_OTHER);
  93.     }
  94. }