src/Controller/HomeController.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Repository\MissionsRepository;
  4. use Knp\Component\Pager\PaginatorInterface;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. class HomeController extends AbstractController
  10. {
  11.     #[Route('/'name'app_home')]
  12.     public function index(MissionsRepository $repoPaginatorInterface $paginatorRequest $request): Response
  13.     {
  14.         // Récupérer les critères de recherche depuis la requête
  15.     $criteria = [
  16.         'titre' => $request->query->get('titre'),
  17.         'budget_min' => $request->query->get('budget_min'),
  18.         'budget_max' => $request->query->get('budget_max'),
  19.         'ville' => $request->query->get('ville'),
  20.         'duree' => $request->query->get('duree'),
  21.         'entreprise_concernee' => $request->query->get('entreprise_concernee'),
  22.     ];
  23.     // Rechercher et paginer les missions
  24.     $queryBuilder $repo->findByCriteria($criteria);
  25.     $missions $paginator->paginate(
  26.         $queryBuilder,
  27.         $request->query->getInt('page'1),
  28.         12 // Nombre de résultats par page
  29.     );
  30.     // Rendre la vue avec les missions paginées
  31.     return $this->render('home/index.html.twig', [
  32.         'lesMissions' => $missions,
  33.         'criteria' => $criteria// Pour pré-remplir les champs du formulaire
  34.     ]);
  35. }
  36. }