src/Controller/VideosController.php line 28

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Videos;
  4. use App\Service\FileUploader;
  5. use App\Repository\MenuRepository;
  6. use App\Controller\VideosController;
  7. use App\Repository\VideosRepository;
  8. use App\Repository\SousmenuRepository;
  9. use Doctrine\ORM\EntityManagerInterface;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\HttpFoundation\Response;
  13. use Symfony\Component\Validator\Validator\ValidatorInterface;
  14. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  15. #[Route('/video')]
  16. class VideosController extends AbstractController
  17. {
  18.         private $em;
  19.         public function __construct(EntityManagerInterface $em)
  20.         {
  21.             $this->em $em;
  22.         }
  23.         
  24.         #[Route('/video'name'app_video_index'methods: ['GET','POST'])]
  25.         public function index(VideosRepository $videosRepository,MenuRepository $menuRepositorySousmenuRepository $sousmenuRepository): Response
  26.         {
  27.             return $this->render('videos/index.html.twig', [
  28.                 'videos' => $videosRepository->findAll(),
  29.                 'menus' => $menuRepository->findAll(),
  30.                 'sousmenus'=>$sousmenuRepository->findAll(),
  31.             ]);
  32.         }
  33.         #[Route('video/{id}/desactive-status'name'app_video_desactive_status'methods: ['GET','POST'])]
  34.         public function desactiveStatus(Videos $videoRequest $request)
  35.         {
  36.             
  37.             $video->setStatut(false);
  38.     
  39.             $this->em->persist($video);
  40.             $this->em->flush();
  41.     
  42.             return $this->redirectToRoute('app_video_index', [], Response::HTTP_SEE_OTHER);
  43.         }
  44.         #[Route('video/{id}/active-status'name'app_video_active_status'methods: ['GET','POST'])]
  45.         public function activeStatus(Videos $videoRequest $request)
  46.         {
  47.            
  48.            
  49.             $video->setStatut(true);
  50.             $this->em->persist($video);
  51.             $this->em->flush();
  52.     
  53.             return $this->redirectToRoute('app_video_index', [], Response::HTTP_SEE_OTHER);
  54.         }
  55.    
  56.         #[Route('/new'name'app_video_new'methods: ['GET''POST'])]
  57.         public function new(FileUploader $fileUploaderValidatorInterface $validatorRequest $requestSousmenuRepository $sousmenuRepositoryMenuRepository $menuRepository): Response
  58.         {
  59.             $submit $request->request->get('submit');
  60.             $errors null;
  61.             if ($submit) {
  62.                 $menu = new Videos();
  63.                 $menu->setTitle($request->request->get('title'));
  64.                 $menu->setUrl($request->request->get('url'));
  65.                 $menu->setStatut($request->request->get('statut'));
  66.     
  67.                 $errors $validator->validate($menu);
  68.                 if (count($errors) > 0) {  
  69.                     $errorsString = (string) $errors;
  70.                 }
  71.                 else {
  72.                     $this->em->persist($menu);
  73.                     $this->em->flush();
  74.                     return $this->redirectToRoute('app_video_index', [], Response::HTTP_SEE_OTHER);
  75.                 }
  76.             }
  77.     
  78.             return $this->renderForm('videos/new.html.twig', [
  79.                 'menus' => $menuRepository->findAll(),
  80.                 'sousmenus' => $sousmenuRepository->findAll(),
  81.                 'errors' => $errors,
  82.             ]);
  83.         }
  84.     
  85.         
  86.         #[Route('video/edit/{id}/'name'app_video_edit'methods: ['GET''POST'])]
  87.         public function edit(FileUploader $fileUploaderValidatorInterface $validatorRequest $requestMenuRepository $menuRepositoryVideos $video): Response
  88.         {
  89.             $submit $request->request->get('submit');
  90.             $errors null;
  91.     
  92.             if ($submit) {
  93.                 $video->setTitle($request->request->get('title'));
  94.                 $video->setStatut($request->request->get('statut'));
  95.                 $video->setUrl($request->request->get('url'));
  96.                 $errors $validator->validate($video);
  97.                 if (count($errors) > 0) {  
  98.                     $errorsString = (string) $errors;
  99.                 }else {
  100.                     $this->em->persist($video);
  101.                     $this->em->flush();
  102.                     return $this->redirectToRoute('app_video_index', [], Response::HTTP_SEE_OTHER);
  103.                 }
  104.             }
  105.             return $this->renderForm('videos/edit.html.twig', [
  106.                 'idVideo'=> $video->getId(),
  107.                 'video' => $video,
  108.                 'menus' => $menuRepository->findAll(),
  109.                 'errors' => $errors,
  110.             ]);
  111.         }
  112.     
  113.         #[Route('video/supprimer/{id}'name'app_video_delete'methods: ['POST'])]
  114.         public function delete(Request $requestVideos $videoMenuRepository $menuRepository): Response
  115.         {   
  116.                 if ($this->isCsrfTokenValid('delete'.$video->getId(), $request->request->get('_token'))) {
  117.                 $this->em->remove($video);
  118.                 $this->em->flush();
  119.             }
  120.             return $this->redirectToRoute('app_video_index', [], Response::HTTP_SEE_OTHER);
  121.         } 
  122.     }