src/Controller/HomeController.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Service;
  4. use App\Repository\ServiceRepository;
  5. use App\Repository\UserRepository;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. class HomeController extends AbstractController
  12. {
  13.     /**
  14.      * @Route("/", name="app_home")
  15.      */
  16.     public function index(): Response
  17.     {
  18.         
  19.         return $this->render('home/index.html.twig', [
  20.             'controller_name' => 'HomeController',
  21.         ]);
  22.     }
  23.     /**
  24.      * @Route("/pro", name="app_home_pro")
  25.      */
  26.     public function pro(): Response
  27.     {
  28.         
  29.         return $this->render('home/pro.html.twig');
  30.     }
  31.     /**
  32.      * @Route("/particular", name="app_home_particular")
  33.      */
  34.     public function paricular(ServiceRepository $repo)
  35.     {
  36.         // Requête pour récupérer les services distincts par nomService
  37.         // $services = $em->createQueryBuilder()
  38.         //     ->select('DISTINCT s.nom')
  39.         //     ->from(Service::class, 's')
  40.         //     ->getQuery()
  41.         //     ->getResult();
  42.         $services $repo->createQueryBuilder('s')
  43.         ->groupBy('s.nom')
  44.         ->getQuery()
  45.         ->getResult();
  46.         return $this->render('home/particular.html.twig', [
  47.            'services' => $services,
  48.         ]);
  49.     }
  50.     /**
  51.      * @Route("/service/{id}", name="devis_step2")
  52.      */
  53.     public function step2(Service $service,Request $request): Response
  54.     {
  55.         // $service = $request->query->get('service');
  56.         // dd($service);
  57.         return $this->render('home/step2.html.twig', [
  58.             'service' => $service,
  59.         ]);
  60.     }
  61.     /**
  62.      * @Route("/service/{id}/prix/{prix}", name="devis_step3")
  63.      */
  64.     public function step3(Service $serviceString $prixUserRepository $userRepo)
  65.     {
  66.         // $users = $userRepo->createQueryBuilder('u')
  67.         // ->join('u.services', 's')
  68.         // ->where('s.nom = :serviceName')
  69.         // ->andWhere('s.prix1 IS NOT NULL')
  70.         // ->setParameter('serviceName', $service->getNom())
  71.         // ->getQuery()
  72.         // ->getResult();
  73.         $users $userRepo->createQueryBuilder('u')
  74.     ->select('u, s'// récupérer aussi le service lié
  75.     ->join('u.services''s')
  76.     ->where('s.nom = :serviceName')
  77.     ->andWhere('s.prix1 IS NOT NULL')
  78.     ->setParameter('serviceName'$service->getNom())
  79.     ->getQuery()
  80.     ->getResult();
  81.         // dd($prix);
  82.         // dd($users);
  83.         return $this->render('home/result.html.twig', [
  84.             'service' => $service,
  85.             'users' => $users,
  86.             'prix' => $prix,
  87.             'nom' => 'nom'
  88.         ]);
  89.     }
  90.     /**
  91.      * @Route("/message", name="message_route")
  92.      */
  93.     public function message(Request $request): Response
  94.     {
  95.         // Récupère le message depuis la query string
  96.         $message $request->query->get('message'''); // valeur par défaut vide
  97.         return $this->render('message.html.twig', [
  98.             'message' => $message,
  99.         ]);
  100.     }
  101. }