<?php
namespace App\Controller;
use App\Repository\MissionsRepository;
use Knp\Component\Pager\PaginatorInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class HomeController extends AbstractController
{
#[Route('/', name: 'app_home')]
public function index(MissionsRepository $repo, PaginatorInterface $paginator, Request $request): Response
{
// Récupérer les critères de recherche depuis la requête
$criteria = [
'titre' => $request->query->get('titre'),
'budget_min' => $request->query->get('budget_min'),
'budget_max' => $request->query->get('budget_max'),
'ville' => $request->query->get('ville'),
'duree' => $request->query->get('duree'),
'entreprise_concernee' => $request->query->get('entreprise_concernee'),
];
// Rechercher et paginer les missions
$queryBuilder = $repo->findByCriteria($criteria);
$missions = $paginator->paginate(
$queryBuilder,
$request->query->getInt('page', 1),
12 // Nombre de résultats par page
);
// Rendre la vue avec les missions paginées
return $this->render('home/index.html.twig', [
'lesMissions' => $missions,
'criteria' => $criteria, // Pour pré-remplir les champs du formulaire
]);
}
}