<?php
namespace App\Controller;
use App\Entity\Service;
use App\Repository\ServiceRepository;
use App\Repository\UserRepository;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class HomeController extends AbstractController
{
/**
* @Route("/", name="app_home")
*/
public function index(): Response
{
return $this->render('home/index.html.twig', [
'controller_name' => 'HomeController',
]);
}
/**
* @Route("/pro", name="app_home_pro")
*/
public function pro(): Response
{
return $this->render('home/pro.html.twig');
}
/**
* @Route("/particular", name="app_home_particular")
*/
public function paricular(ServiceRepository $repo)
{
// Requête pour récupérer les services distincts par nomService
// $services = $em->createQueryBuilder()
// ->select('DISTINCT s.nom')
// ->from(Service::class, 's')
// ->getQuery()
// ->getResult();
$services = $repo->createQueryBuilder('s')
->groupBy('s.nom')
->getQuery()
->getResult();
return $this->render('home/particular.html.twig', [
'services' => $services,
]);
}
/**
* @Route("/service/{id}", name="devis_step2")
*/
public function step2(Service $service,Request $request): Response
{
// $service = $request->query->get('service');
// dd($service);
return $this->render('home/step2.html.twig', [
'service' => $service,
]);
}
/**
* @Route("/service/{id}/prix/{prix}", name="devis_step3")
*/
public function step3(Service $service, String $prix, UserRepository $userRepo)
{
// $users = $userRepo->createQueryBuilder('u')
// ->join('u.services', 's')
// ->where('s.nom = :serviceName')
// ->andWhere('s.prix1 IS NOT NULL')
// ->setParameter('serviceName', $service->getNom())
// ->getQuery()
// ->getResult();
$users = $userRepo->createQueryBuilder('u')
->select('u, s') // récupérer aussi le service lié
->join('u.services', 's')
->where('s.nom = :serviceName')
->andWhere('s.prix1 IS NOT NULL')
->setParameter('serviceName', $service->getNom())
->getQuery()
->getResult();
// dd($prix);
// dd($users);
return $this->render('home/result.html.twig', [
'service' => $service,
'users' => $users,
'prix' => $prix,
'nom' => 'nom'
]);
}
/**
* @Route("/message", name="message_route")
*/
public function message(Request $request): Response
{
// Récupère le message depuis la query string
$message = $request->query->get('message', ''); // valeur par défaut vide
return $this->render('message.html.twig', [
'message' => $message,
]);
}
}