src/Controller/UserController.php line 27

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Service;
  4. use App\Entity\User;
  5. use App\Form\ServiceType;
  6. use App\Form\UserType;
  7. use App\Repository\ServiceRepository;
  8. use App\Repository\UserRepository;
  9. use Doctrine\ORM\EntityManagerInterface;
  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. /**
  15.  * @Route("/user")
  16.  */
  17. class UserController extends AbstractController
  18. {
  19.     /**
  20.      * @Route("/new", name="app_user_new", methods={"GET", "POST"})
  21.      */
  22.     public function new(Request $requestEntityManagerInterface $em): Response
  23.     {
  24.         $user = new User();
  25.         // Services dynamiques venant d'une base ou définis ici
  26.         $services = ['Plomb''DPE''Amiante','Gaz','Electricite','Pack location','Pack vente']; // ou $em->getRepository(Service::class)->findAll() si tu veux depuis DB
  27.         // Ajouter les services fixes
  28.         foreach ( $services as $nom) {
  29.             $service = new Service();
  30.             $service->setNom($nom);
  31.             $service->setUser($user);
  32.             $user->getServices()->add($service);
  33.             $em->persist($service);
  34.         }
  35.         $form $this->createForm(UserType::class, $user, [
  36.             'available_services' => $services,
  37.         ]);
  38.         $form->handleRequest($request);
  39.         if ($form->isSubmitted() && $form->isValid()) {
  40.             $em->persist($user);
  41.             $em->flush();
  42.             return $this->redirectToRoute('message_route', [
  43.                 'message' => 'Félicitations 🎉 votre demande a été enregistré'
  44.             ]);
  45.         }
  46.         return $this->render('home/user_new.html.twig', [
  47.             'form' => $form->createView(),
  48.         ]);
  49.     }
  50.     // /**
  51.     //  * @Route("/new", name="app_service_new", methods={"GET", "POST"})
  52.     //  */
  53.     // public function new(Request $request, ServiceRepository $serviceRepository): Response
  54.     // {
  55.     //     $service = new Service();
  56.     //     $form = $this->createForm(ServiceType::class, $service);
  57.     //     $form->handleRequest($request);
  58.     //     if ($form->isSubmitted() && $form->isValid()) {
  59.     //         $serviceRepository->add($service, true);
  60.     //         return $this->redirectToRoute('app_service_index', [], Response::HTTP_SEE_OTHER);
  61.     //     }
  62.     //     return $this->renderForm('service/new.html.twig', [
  63.     //         'service' => $service,
  64.     //         'form' => $form,
  65.     //     ]);
  66.     // }
  67.     /**
  68.      * @Route("/{id}", name="app_service_show", methods={"GET"})
  69.      */
  70.     public function show(Service $service): Response
  71.     {
  72.         return $this->render('service/show.html.twig', [
  73.             'service' => $service,
  74.         ]);
  75.     }
  76.     /**
  77.      * @Route("/{id}/edit", name="app_service_edit", methods={"GET", "POST"})
  78.      */
  79.     public function edit(Request $requestService $serviceServiceRepository $serviceRepository): Response
  80.     {
  81.         $form $this->createForm(ServiceType::class, $service);
  82.         $form->handleRequest($request);
  83.         if ($form->isSubmitted() && $form->isValid()) {
  84.             $serviceRepository->add($servicetrue);
  85.             return $this->redirectToRoute('app_service_index', [], Response::HTTP_SEE_OTHER);
  86.         }
  87.         return $this->renderForm('service/edit.html.twig', [
  88.             'service' => $service,
  89.             'form' => $form,
  90.         ]);
  91.     }
  92.     /**
  93.      * @Route("/{id}", name="app_service_delete", methods={"POST"})
  94.      */
  95.     public function delete(Request $requestService $serviceServiceRepository $serviceRepository): Response
  96.     {
  97.         if ($this->isCsrfTokenValid('delete'.$service->getId(), $request->request->get('_token'))) {
  98.             $serviceRepository->remove($servicetrue);
  99.         }
  100.         return $this->redirectToRoute('app_service_index', [], Response::HTTP_SEE_OTHER);
  101.     }
  102. }