src/Controller/ReportageController.php line 28

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Reportage;
  4. use App\Form\ReportageType;
  5. use App\Service\FileUploader;
  6. use App\Repository\MenuRepository;
  7. use App\Repository\SousmenuRepository;
  8. use App\Repository\ReportageRepository;
  9. use Doctrine\ORM\EntityManagerInterface;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\HttpFoundation\Response;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. use Symfony\Component\Validator\Validator\ValidatorInterface;
  14. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  15. class ReportageController extends AbstractController
  16. {   
  17.     private $em;
  18.     public function __construct(EntityManagerInterface $em)
  19.     {
  20.         $this->em $em;
  21.     }
  22.     
  23.     #[Route('/admin/reportage'name'app_reportage_index'methods: ['GET','POST'])]
  24.     public function index(ReportageRepository $reportageRepository,MenuRepository $menuRepository): Response
  25.     {
  26.         return $this->render('reportage/index.html.twig', [
  27.             'reportages' => $reportageRepository->findAll(),
  28.             'menus' => $menuRepository->findAll(),
  29.         ]);
  30.     }
  31.     #[Route('/admin/new'name'app_reportage_new'methods: ['GET''POST'])]
  32.     public function new(FileUploader $fileUploaderValidatorInterface $validatorRequest $requestSousmenuRepository $sousmenuRepositoryMenuRepository $menuRepository): Response
  33.     {
  34.         $submit $request->request->get('submit');
  35.         $errors null;
  36.         if ($submit) {
  37.             $menu = new Reportage();
  38.             $menu->setSousmenu($sousmenuRepository->find($request->request->get('menu')));
  39.             $menu->setTitle($request->request->get('libelle'));
  40.             $menu->setPath($request->request->get('path'));
  41.             $menu->setRevue($request->request->get('observation'));
  42.             $tab  null;
  43.             $tabvid  null;
  44.             if ($request->files->get('file')) {
  45.                 foreach ($request->files->get('file') as  $value) {
  46.                     $FileName $fileUploader->upload($value);
  47.                     $tab[] = $FileName;
  48.                 }
  49.                 $menu->setPhoto($tab);
  50.             }
  51.             if ($request->files->get('video')) {
  52.                 foreach ($request->files->get('video') as  $value) {
  53.                     $FileName $fileUploader->upload($value);
  54.                     $tabvid[] = $FileName;
  55.                 }
  56.                 $menu->setVideo($tabvid);
  57.             }
  58.             $errors $validator->validate($menu);
  59.             if (count($errors) > 0) {  
  60.                 $errorsString = (string) $errors;
  61.             }else {
  62.                 $this->em->persist($menu);
  63.                 $this->em->flush();
  64.                 return $this->redirectToRoute('app_reportage_index', [], Response::HTTP_SEE_OTHER);
  65.             }
  66.         }
  67.         return $this->renderForm('reportage/new.html.twig', [
  68.             'menus' => $menuRepository->findAll(),
  69.             'sousmenus' => $sousmenuRepository->findAll(),
  70.             'errors' => $errors,
  71.         ]);
  72.     }
  73.     
  74.     #[Route('/admin/reportage/edit/{id}/'name'app_reportage_edit'methods: ['GET''POST'])]
  75.     public function edit(FileUploader $fileUploaderValidatorInterface $validatorRequest $requestReportage $reportageSousmenuRepository $sousmenuRepository,
  76.      MenuRepository $menuRepository): Response
  77.     {
  78.         $submit $request->request->get('submit');
  79.         /*  $oldphoto = $sousmenu2->getImage();
  80.         $oldvideo = $sousmenu2->getVideo(); */
  81.         $errors null;
  82.         if ($submit) {
  83.             $reportage->setSousmenu($sousmenuRepository->find($request->request->get('menu')));
  84.             $reportage->setTitle($request->request->get('libelle'));
  85.             $reportage->setPath($request->request->get('path'));
  86.             $reportage->setRevue($request->request->get('observation'));
  87.             $errors $validator->validate($reportage);
  88.             $tab  null;
  89.             $tabvid  null;
  90.             if ($request->files->get('file')) {
  91.                 // $FileName = $fileUploader->upload($request->files->get('file'));
  92.                 foreach ($request->files->get('file') as  $value) {
  93.                     $FileName $fileUploader->upload($value);
  94.                     $tab[] = $FileName;
  95.                 }
  96.                 $reportage->setPhoto($tab);
  97.             } /* else {
  98.                 if ($oldphoto) {
  99.                     foreach ($oldphoto as  $value) {
  100.                     $tab[] = $value;
  101.                 }
  102.                  $sousmenu2->setImage($tab);
  103.                 }
  104.             } */
  105.             if ($request->files->get('video')) {
  106.                 foreach ($request->files->get('video') as  $value) {
  107.                     $FileName $fileUploader->upload($value);
  108.                     $tabvid[] = $FileName;
  109.                 }
  110.                 $reportage->setVideo($tabvid);
  111.             }
  112.             if (count($errors) > 0) {  
  113.                 $errorsString = (string) $errors;
  114.             }else {
  115.                 $this->em->persist($reportage);
  116.                 $this->em->flush();
  117.                 return $this->redirectToRoute('app_reportage_index', [], Response::HTTP_SEE_OTHER);
  118.             }
  119.         }
  120.         return $this->renderForm('reportage/edit.html.twig', [
  121.             'idsousMenu' => $reportage->getSousmenu()->getId(),
  122.             'idReportage'=> $reportage->getId(),
  123.             'reportage' => $reportage,
  124.             'sousmenus' => $sousmenuRepository->findAll(),
  125.             'menus' => $menuRepository->findAll(),
  126.             'errors' => $errors,
  127.         ]);
  128.     }
  129.    
  130.     #[Route('/admin/reportage/supprimer/{id}'name'app_reportage_delete'methods: ['POST'])]
  131.     public function delete(Request $requestReportage $reportageMenuRepository $menuRepository): Response
  132.     {   
  133.         //dd( $menu);
  134.         if ($this->isCsrfTokenValid('delete'.$reportage->getId(), $request->request->get('_token'))) {
  135.             $this->em->remove($reportage);
  136.             $this->em->flush();
  137.         }
  138.         return $this->redirectToRoute('app_reportage_index', [], Response::HTTP_SEE_OTHER);
  139.     }
  140. }