src/Controller/HomeController.php line 23
<?php
namespace App\Controller;
use App\Entity\Articles;
use App\Entity\Category;
use Doctrine\ORM\EntityManagerInterface;
use Knp\Component\Pager\PaginatorInterface;
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')] // je map l'URL / home) permet de faire des redirections
// si j'ai l'URL /home => j'exécute index()
// injecter dans la class index la dépendance vers EntityManagerInterface
// c'est 1 injection de dépendancer
public function index(EntityManagerInterface $entityManager, PaginatorInterface $paginator, Request $request): Response // le retour de la method index() est 1 objet de type réponse
// index() va intercepter 1 requête & retourner 1 réponse
// en php 8, on peut typer le retour des réponses
{
// elle retourne l'appel à la method render ()
// render => renvoit 1 vue
// avec 1 tableau de paramètres
// j'ai récupéré le repository de la class Articles
// & j'ai appelé la method findAll() qui est 1 liste d'entités
$articles = $entityManager->getRepository(Articles::class)->findAll();
//dd($articles);
// j'ai récupéré le repository de la class Categories
// & j'ai appelé la method findAll() qui est 1 liste d'entités
// $categories = $entityManager->getRepository(Category::class)->findAll();
$categories = $entityManager->getRepository(Category::class)->findCategoriesWithArticles();
// dd($products);
// écraser ma variable $articles
// en lui affectant ma pagination
$articles = $paginator->paginate(
$articles, /* query NOT result */
$request->query->getInt('page', 1), /*page number*/
4 /*limit per page*/
);
return $this->render('home/index.html.twig', [
'listArticles' => $articles, // je passe des pamètres à vue
'listCategories' => $categories,
]);
}
}