src/Controller/ProjetController.php line 106

  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Categorie;
  4. use App\Entity\Projet;
  5. use App\Form\ProjetType;
  6. use App\Form\ContactFormType;
  7. use App\Repository\CategorieRepository;
  8. use App\Repository\ProjetRepository;
  9. use Symfony\Component\HttpFoundation\File\UploadedFile;
  10. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\HttpFoundation\Response;
  13. use Symfony\Component\Routing\Annotation\Route;
  14. use Doctrine\ORM\EntityManagerInterface;
  15. use Symfony\Component\Mailer\MailerInterface;
  16. use Symfony\Component\Mime\Email;
  17. class ProjetController extends AbstractController
  18. {
  19.     #[Route('/'name'projet'methods: ['GET'])]
  20.     public function index(ProjetRepository $projetRepositoryCategorieRepository $categorieRepository): Response
  21.     {
  22.         return $this->render('projets/index.html.twig', [
  23.             'projets' => $projetRepository->findAll(),
  24.             'categories' => $categorieRepository->findAll()
  25.         ]);
  26.     }
  27.     
  28.     #[Route('admin/projet'name'app_projet_index'methods: ['GET'])]
  29.     public function showAll(ProjetRepository $projetRepository): Response
  30.     {
  31.         return $this->render('projet/index.html.twig', [
  32.             'projets' => $projetRepository->findAll(),
  33.         ]);
  34.     }
  35.     #[Route('admin/projet/new'name'app_projet_new'methods: ['GET''POST'])]
  36.     public function new(Request $requestEntityManagerInterface $em)
  37. {
  38.     $article = new Projet();
  39.     $form $this->createForm(ProjetType::class, $article);
  40.     $form->handleRequest($request);
  41.     if ($form->isSubmitted() && $form->isValid()) {
  42.         /** @var UploadedFile $file */
  43.         $file $form->get('imagePresentation')->getData();
  44.         $file2 $form->get('image2')->getData();
  45.         $file3 $form->get('image3')->getData();
  46.         $file4 $form->get('image4')->getData();
  47.         $file5 $form->get('image5')->getData();
  48.         $file6 $form->get('image6')->getData();
  49.         $fileName md5(uniqid()).'.'.$file->guessExtension();
  50.         $file->move(
  51.             $this->getParameter('image_directory'),
  52.             $fileName
  53.         );
  54.         $fileName2 md5(uniqid()).'.'.$file2->guessExtension();
  55.         $file2->move(
  56.             $this->getParameter('image_directory'),
  57.             $fileName2
  58.         );
  59.         $fileName3 md5(uniqid()).'.'.$file3->guessExtension();
  60.         $file3->move(
  61.             $this->getParameter('image_directory'),
  62.             $fileName3
  63.         );
  64.         $fileName4 md5(uniqid()).'.'.$file4->guessExtension();
  65.         $file4->move(
  66.             $this->getParameter('image_directory'),
  67.             $fileName4
  68.         );
  69.         $fileName5 md5(uniqid()).'.'.$file5->guessExtension();
  70.         $file5->move(
  71.             $this->getParameter('image_directory'),
  72.             $fileName5
  73.         );
  74.         $fileName6 md5(uniqid()).'.'.$file6->guessExtension();
  75.         $file6->move(
  76.             $this->getParameter('image_directory'),
  77.             $fileName6
  78.         );
  79.         $article->setImagePresentation($fileName);
  80.         $article->setImage2($fileName2);
  81.         $article->setImage3($fileName3);
  82.         $article->setImage4($fileName4);
  83.         $article->setImage5($fileName5);
  84.         $article->setImage6($fileName6);
  85.         $em->persist($article);
  86.         $em->flush();
  87.         return $this->redirectToRoute('app_projet_index');
  88.         // Enregistrez le nom du fichier en base de donnĂ©es
  89.     }
  90.     return $this->render('projet/new.html.twig', [
  91.         'form' => $form->createView(),
  92.         'projet' => $article,
  93.     ]);
  94. }
  95.             
  96.     #[Route('projet/{id}'name'app_projet_show'methods: ['GET'])]
  97.     public function show(Projet $projet,ProjetRepository $projetRepository): Response
  98.     {
  99.         return $this->render('projets/show.html.twig', [
  100.             'projet' => $projet,
  101.             'projets' => $projetRepository->findAll(),
  102.         ]);
  103.     }
  104.     #[Route('admin/projet/{id}/edit'name'app_projet_edit'methods: ['GET''POST'])]
  105.     public function edit(Request $requestProjet $projetProjetRepository $projetRepository): Response
  106.     {
  107.         $form $this->createForm(ProjetType::class, $projet);
  108.         $form->handleRequest($request);
  109.         if ($form->isSubmitted() && $form->isValid()) {
  110.               $file $form->get('imagePresentation')->getData();
  111.         $file2 $form->get('image2')->getData();
  112.         $file3 $form->get('image3')->getData();
  113.         $file4 $form->get('image4')->getData();
  114.         $file5 $form->get('image5')->getData();
  115.         $file6 $form->get('image6')->getData();
  116.         $fileName md5(uniqid()).'.'.$file->guessExtension();
  117.         $file->move(
  118.             $this->getParameter('image_directory'),
  119.             $fileName
  120.         );
  121.         $fileName2 md5(uniqid()).'.'.$file2->guessExtension();
  122.         $file2->move(
  123.             $this->getParameter('image_directory'),
  124.             $fileName2
  125.         );
  126.         $fileName3 md5(uniqid()).'.'.$file3->guessExtension();
  127.         $file3->move(
  128.             $this->getParameter('image_directory'),
  129.             $fileName3
  130.         );
  131.         $fileName4 md5(uniqid()).'.'.$file4->guessExtension();
  132.         $file4->move(
  133.             $this->getParameter('image_directory'),
  134.             $fileName4
  135.         );
  136.         $fileName5 md5(uniqid()).'.'.$file5->guessExtension();
  137.         $file5->move(
  138.             $this->getParameter('image_directory'),
  139.             $fileName5
  140.         );
  141.         $fileName6 md5(uniqid()).'.'.$file6->guessExtension();
  142.         $file6->move(
  143.             $this->getParameter('image_directory'),
  144.             $fileName6
  145.         );
  146.         $article->setImagePresentation($fileName);
  147.         $article->setImage2($fileName2);
  148.         $article->setImage3($fileName3);
  149.         $article->setImage4($fileName4);
  150.         $article->setImage5($fileName5);
  151.         $article->setImage6($fileName6);
  152.         $em->persist($article);
  153.         $em->flush();
  154.             $projetRepository->save($projettrue);
  155.         return $this->redirectToRoute('app_projet_index');
  156.             
  157.             return $this->redirectToRoute('app_projet_index', [], Response::HTTP_SEE_OTHER);
  158.         }
  159.         return $this->renderForm('projet/edit.html.twig', [
  160.             'projet' => $projet,
  161.             'form' => $form,
  162.         ]);
  163.     }
  164.     #[Route('admin/projet/{id}'name'app_projet_delete'methods: ['POST'])]
  165.     public function delete(Request $requestProjet $projetProjetRepository $projetRepository): Response
  166.     {
  167.         if ($this->isCsrfTokenValid('delete'.$projet->getId(), $request->request->get('_token'))) {
  168.             $projetRepository->remove($projettrue);
  169.         }
  170.         return $this->redirectToRoute('app_projet_index', [], Response::HTTP_SEE_OTHER);
  171.     }
  172.    
  173.     #[Route('metiers'name'app_projet_metiers'methods: ['GET'])]
  174.     public function metier(ProjetRepository $projetRepositoryCategorieRepository $categorieRepository): Response
  175.     {
  176.         return $this->render('metiers.html.twig', [
  177.             'projets' => $projetRepository->findAll(),
  178.             'categories' => $categorieRepository->findAll(),
  179.         ]);
  180.     }
  181.    
  182. }