src/Controller/ProduitController.php line 82

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Produit;
  4. use App\Form\ProduitType;
  5. use App\Service\FileUploader;
  6. use App\Repository\MenuRepository;
  7. use App\Repository\SousmenuRepository;
  8. use App\Repository\ProduitRepository;
  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. use App\Repository\CategoryRepository;
  16. #[Route('/produit')]
  17. class ProduitController extends AbstractController
  18. {   
  19.     private $em;
  20.     public function __construct(EntityManagerInterface $em)
  21.     {
  22.         $this->em $em;
  23.     }
  24.     
  25.     #[Route('/produit'name'app_produit_index'methods: ['GET','POST'])]
  26.     public function index(ProduitRepository $produitRepository,CategoryRepository $categoryRepositoryMenuRepository $menuRepository): Response
  27.     {
  28.         return $this->render('produit/index.html.twig', [
  29.             'products' => $produitRepository->findAll(),
  30.             'menus' => $menuRepository->findAll(),
  31.             'categories'=>$categoryRepository->findAll()
  32.         ]);
  33.     }
  34.     #[Route('/new'name'app_produit_new'methods: ['GET''POST'])]
  35.     public function new(FileUploader $fileUploaderValidatorInterface $validatorCategoryRepository $categoryRepositoryRequest $requestSousmenuRepository $sousmenuRepositoryMenuRepository $menuRepository): Response
  36.     {
  37.         $submit $request->request->get('submit');
  38.         $errors null;
  39.         if ($submit) {
  40.             $menu = new Produit();
  41.             /* $menu->setSousmenu($sousmenuRepository->find($request->request->get('menu'))); */
  42.             $menu->setCategory($categoryRepository->find($request->request->get('menu')));
  43.             $menu->setName($request->request->get('libelle'));
  44.             // $menu->setPath($request->request->get('path'));
  45.             $menu->setDescription($request->request->get('observation'));
  46.             $menu->setPrice($request->request->get('price'));
  47.             $tab  null;
  48.             if ($request->files->get('file')) {
  49.                 foreach ($request->files->get('file') as  $value) {
  50.                     $FileName $fileUploader->upload($value);
  51.                     $tab[] = $FileName;
  52.                 }
  53.                 $menu->setImage($tab);
  54.             }
  55.             $errors $validator->validate($menu);
  56.             if (count($errors) > 0) {  
  57.                 $errorsString = (string) $errors;
  58.             }
  59.             else {
  60.                 $this->em->persist($menu);
  61.                 $this->em->flush();
  62.                 return $this->redirectToRoute('app_produit_index', [], Response::HTTP_SEE_OTHER);
  63.             }
  64.         }
  65.         return $this->renderForm('produit/new.html.twig', [
  66.             'menus' => $menuRepository->findAll(),
  67.             'sousmenus' => $sousmenuRepository->findAll(),
  68.             'categories' => $categoryRepository->findAll(),
  69.             'errors' => $errors,
  70.         ]);
  71.     }
  72.     
  73.     #[Route('produit/edit/{id}/'name'app_produit_edit'methods: ['GET''POST'])]
  74.     public function edit(FileUploader $fileUploaderValidatorInterface $validatorRequest $requestProduit $produitCategoryRepository $categoryRepository,
  75.      MenuRepository $menuRepository): Response
  76.     {
  77.         $submit $request->request->get('submit');
  78.         $errors null;
  79.         if ($submit) {
  80.             $produit->setCategory($categoryRepository->find($request->request->get('menu')));
  81.             $produit->setName($request->request->get('libelle'));
  82.             $produit->setDescription($request->request->get('observation'));
  83.             $produit->setPrice($request->request->get('price'));
  84.             $errors $validator->validate($produit);
  85.             $tab  null;
  86.             if ($request->files->get('file')) {
  87.                 // $FileName = $fileUploader->upload($request->files->get('file'));
  88.                 foreach ($request->files->get('file') as  $value) {
  89.                     $FileName $fileUploader->upload($value);
  90.                     $tab[] = $FileName;
  91.                 }
  92.                 $produit->setImage($tab);
  93.             } /* else {
  94.                 if ($oldphoto) {
  95.                     foreach ($oldphoto as  $value) {
  96.                     $tab[] = $value;
  97.                 }
  98.                  $sousmenu2->setImage($tab);
  99.                 }
  100.             } */
  101.         /* else {
  102.                 if ($oldvideo) {
  103.                     foreach ($oldvideo as  $value) {
  104.                     $tabvid[] = $value;
  105.                 }
  106.                  $sousmenu2->setVideo($tabvid);
  107.                 }
  108.             } */
  109.             if (count($errors) > 0) {  
  110.                 $errorsString = (string) $errors;
  111.             }else {
  112.                 $this->em->persist($produit);
  113.                 $this->em->flush();
  114.                 return $this->redirectToRoute('app_produit_index', [], Response::HTTP_SEE_OTHER);
  115.             }
  116.         }
  117.         return $this->renderForm('produit/edit.html.twig', [
  118.             'idcategory' => $produit->getCategory()->getId(),
  119.             'idProduit'=> $produit->getId(),
  120.             'produit' => $produit,
  121.             'categories' => $categoryRepository->findAll(),
  122.             'menus' => $menuRepository->findAll(),
  123.             'errors' => $errors,
  124.         ]);
  125.     }
  126.    /*  #[Route('/{id}', name: 'app_sousmenu2_delete', methods: ['POST'])]
  127.     public function delete(Request $request, Sousmenu2 $sousmenu2, Sousmenu2Repository $sousmenu2Repository): Response
  128.     {
  129.         if ($this->isCsrfTokenValid('delete'.$sousmenu2->getId(), $request->request->get('_token'))) {
  130.             $sousmenu2Repository->remove($sousmenu2, true);
  131.         }
  132.         return $this->redirectToRoute('app_sousmenu2_index', [], Response::HTTP_SEE_OTHER);
  133.     } */
  134.     #[Route('produit/supprimer/{id}'name'app_produit_delete'methods: ['POST'])]
  135.     public function delete(Request $requestProduit $produitMenuRepository $menuRepository): Response
  136.     {   
  137.         //dd( $menu);
  138.         if ($this->isCsrfTokenValid('delete'.$produit->getId(), $request->request->get('_token'))) {
  139.             $this->em->remove($produit);
  140.             $this->em->flush();
  141.         }
  142.         return $this->redirectToRoute('app_produit_index', [], Response::HTTP_SEE_OTHER);
  143.     }
  144. }