<?php
namespace App\Controller;
use App\Form\BookAdSearchType;
use App\Repository\BookAdRepository;
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
{
// 04-04
// page d'accueil, affiche les 25 dernières annonces
#[Route('/', name: 'app_home')]
public function home(BookAdRepository $repository): Response
{
// récupérer les annonces
$ads = $repository->findLatest();
// literally nothing else needed
return $this->render('home/home.html.twig', [
'ads' => $ads,
]);
}
// 04-04
// recherche d'annonces par critères
#[Route('/search', name: 'app_home_search')]
public function search(Request $request, BookAdRepository $repository): Response
{
// création du formulaire de recherche
$form = $this->createForm(BookAdSearchType::class);
// remplissage du formulaire avec les données saisies
$form->handleRequest($request);
// récupération des critères de recherche
$criteria = $form->getData();
// recherche et résultats
$ads = $repository->findAllByCriteria($criteria);
// affichage du formulaire
return $this->render('home/search.html.twig', [
'ads' => $ads,
'form' => $form->createView(),
]);
}
}