src/Controller/HomeController.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Form\BookAdSearchType;
  4. use App\Repository\BookAdRepository;
  5. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. class HomeController extends AbstractController
  10. {
  11.     // 04-04
  12.     // page d'accueil, affiche les 25 dernières annonces
  13.     #[Route('/'name'app_home')]
  14.     public function home(BookAdRepository $repository): Response
  15.     {
  16.         // récupérer les annonces
  17.         $ads $repository->findLatest();
  18.         // literally nothing else needed
  19.         return $this->render('home/home.html.twig', [
  20.             'ads' => $ads,
  21.         ]);
  22.     }
  23.     // 04-04
  24.     // recherche d'annonces par critères
  25.     #[Route('/search'name'app_home_search')]
  26.     public function search(Request $requestBookAdRepository $repository): Response
  27.     {
  28.         // création du formulaire de recherche
  29.         $form $this->createForm(BookAdSearchType::class);
  30.         // remplissage du formulaire avec les données saisies
  31.         $form->handleRequest($request);
  32.         // récupération des critères de recherche
  33.         $criteria $form->getData();
  34.         // recherche et résultats
  35.         $ads $repository->findAllByCriteria($criteria);
  36.         // affichage du formulaire
  37.         return $this->render('home/search.html.twig', [
  38.             'ads' => $ads,
  39.             'form' => $form->createView(),
  40.         ]);
  41.     }
  42. }