src/Controller/MesProjetsController.php line 70

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Form\ProjetsType;
  4. use App\Entity\MesProjets;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. use Symfony\Component\String\Slugger\SluggerInterface;
  10. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  11. use Symfony\Component\HttpFoundation\File\Exception\FileException;
  12. class MesProjetsController extends AbstractController
  13. {
  14.     public function __construct(EntityManagerInterface $manager){
  15.         $this->manager $manager
  16.     } 
  17.     // ********************AJOUT PROJETS
  18.     /**
  19.      * @Route("/admin/formprojets", name="app_form_projets")
  20.      */
  21.     public function index(Request $requestSluggerInterface $slugger): Response
  22.     {
  23.         $projets = new MesProjets(); 
  24.         $form $this->createForm(ProjetsType::class, $projets);   
  25.         $form->handleRequest($request);
  26.         if ($form->isSubmitted() && $form->isValid()){
  27.             
  28.             $photoProjets $form->get('images')->getData();
  29.        
  30.             if($photoProjets){      
  31.            $originalFilename pathinfo($photoProjets->getClientOriginalName(), PATHINFO_FILENAME);
  32.            $safeFilename $slugger->slug($originalFilename);
  33.            $newFilename $safeFilename.'-'.uniqid().'.'.$photoProjets->guessExtension();
  34.              try {
  35.                 $photoProjets->move(
  36.                     $this->getParameter('images'), 
  37.                     $newFilename
  38.                 );
  39.              }catch (FileException $e){
  40.              }
  41.               $projets->setImages($newFilename); 
  42.             }else{
  43.                 dd("Aucun logo"); 
  44.             } 
  45.             $this->manager->persist($projets); 
  46.             $this->manager->flush(); 
  47.             return $this->redirectToRoute('app_mes_projets'); 
  48.         }
  49.         return $this->render('mes_projets/index.html.twig', [
  50.             'formProjets' => $form->createView()  
  51.             
  52.         ]); 
  53.     }
  54.     // ************************AFFICHAGE DE TOUS MES PROJETS
  55.     /**
  56.      * @Route("/mes/projets", name="app_mes_projets")
  57.      */
  58.     public function mesProjets(): Response
  59.     {
  60.         $projets $this->manager->getRepository(MesProjets::class)->findAll();  
  61.         
  62.         return $this->render('mes_projets/allprojets.html.twig', [
  63.             'projets' => $projets,  
  64.             
  65.         ]);
  66.     }
  67.     // *************************** AFFICHAGE MODIFICATION ET SUPPRESSION
  68.     /**
  69.      * @Route("/admin/projets/edit/{id}", name="app_admin_projets_edit")
  70.      */
  71.     public function projetsEdit(MesProjets $projetsSluggerInterface $sluggerRequest $request): Response 
  72.     {
  73.             $formEdit $this->createForm(ProjetsType::class, $projets);
  74.             $formEdit->handleRequest($request);
  75.             if ($formEdit->isSubmitted() && $formEdit->isValid()) {
  76.             $photoProjets $formEdit->get('images')->getData();
  77.             if($photoProjets){
  78.                 $originalFilename pathinfo($photoProjets->getClientOriginalName(), PATHINFO_FILENAME);
  79.                 $safeFilename $slugger->slug($originalFilename);
  80.                 $newFilename $safeFilename.'-'.uniqid().'.'.$photoProjets->guessExtension();
  81.                   try {
  82.                      $photoProjets->move(
  83.                          $this->getParameter('images'), 
  84.                          $newFilename
  85.                      );
  86.                   }catch (FileException $e){
  87.      
  88.                   }
  89.                    $projets->setImages($newFilename);
  90.                  }else{
  91.                      dd("Aucun logo"); 
  92.                  } 
  93.                 $this->manager->persist($projets);  
  94.                 $this->manager->flush(); 
  95.                 return $this->redirectToRoute('app_mes_projets'); 
  96.             }
  97.             return $this->render('mes_projets/editprojets.html.twig', [
  98.                 'formProjets' => $formEdit->createview(), 
  99.             ]);    
  100.     }
  101.     /**
  102.      * @Route("/admin/projets/delete/{id}", name="app_admin_projets_delete")
  103.      */
  104.     public function projetsDelete(MesProjets $projets): Response 
  105.     {
  106.             $this->manager->remove($projets); 
  107.             $this->manager->flush(); 
  108.         return $this->redirectToRoute('admin_app_projets_all');           
  109.         
  110.     }
  111.     // ***************************AFFICHAGE AJOUT PROJETS 
  112.     /**
  113.      * @Route("/admin/projets/ajout", name="app_projets_ajout")
  114.      */
  115.     public function projetsAjout(Request $request): Response 
  116.     {
  117.         $projets = new MesProjets(); 
  118.         $form $this->createForm(ProjetsType::class, $projets);   
  119.         $form->handleRequest($request); 
  120.         if ($form->isSubmitted() && $form->isValid()){
  121.             $this->manager->persist($projets); 
  122.             $this->manager->flush(); 
  123.             return $this->redirectToRoute('app_mes_projets'); 
  124.         }
  125.         return $this->render('mes_projets/ajoutprojets.html.twig', [
  126.             'formProjets' => $form->createView(),  
  127.             
  128.         ]);
  129.     }
  130.     // *******************************AFFICHAGE GESTION PROJETS 
  131.     /**
  132.      * @Route("/admin/all/projets", name="admin_app_projets_all") 
  133.      */
  134.     public function allprojetsAdmin(): Response 
  135.     {
  136.         
  137.         $allTable $this->manager->getRepository(MesProjets::class)->findAll();  
  138.         // dd($projets);
  139.         return $this->render('mes_projets/gestion.html.twig', [ 
  140.             'projets' => $allTable
  141.         ]);   
  142.     
  143.     }
  144.     /**
  145.      * @Route("/single/projets/{id}", name="app_view_projets") 
  146.      */
  147.     public function singleProjets(MesProjets $projets): Response 
  148.     {
  149.         
  150.         $projets $this->manager->getRepository(MesProjets::class)->find($projets);
  151.         return $this->render('mes_projets/singleProjets.html.twig', [
  152.             'projets' => $projets,
  153.              
  154.         ]);  
  155.     
  156.     }
  157. }