src/Controller/HomeController.php line 23

  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Articles;
  4. use App\Entity\Category;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Knp\Component\Pager\PaginatorInterface;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. class HomeController extends AbstractController
  12. {
  13.     #[Route('/'name'app_home')] // je map l'URL / home) permet de faire des redirections
  14.     // si j'ai l'URL /home => j'exécute index()
  15.     // injecter dans la class index la dépendance vers EntityManagerInterface
  16.     // c'est 1 injection de dépendancer
  17.     public function index(EntityManagerInterface $entityManagerPaginatorInterface $paginatorRequest $request): Response // le retour de la method index() est 1 objet de type réponse
  18.     // index() va intercepter 1 requête & retourner 1 réponse
  19.     // en php 8, on peut typer le retour des réponses
  20.     
  21.     {
  22.         // elle retourne l'appel à la method render ()
  23.         // render => renvoit 1 vue
  24.         // avec 1 tableau de paramètres
  25.         // j'ai récupéré le repository de la class Articles
  26.         // & j'ai appelé la method findAll() qui est 1 liste d'entités
  27.         $articles $entityManager->getRepository(Articles::class)->findAll();
  28.         //dd($articles);
  29.          // j'ai récupéré le repository de la class Categories
  30.         // & j'ai appelé la method findAll() qui est 1 liste d'entités
  31.         // $categories = $entityManager->getRepository(Category::class)->findAll();
  32.         $categories $entityManager->getRepository(Category::class)->findCategoriesWithArticles();
  33.         // dd($products);
  34.         // écraser ma variable $articles
  35.         // en lui affectant ma pagination
  36.             $articles $paginator->paginate(
  37.             $articles/* query NOT result */
  38.             $request->query->getInt('page'1), /*page number*/
  39.             /*limit per page*/
  40.         );
  41.         return $this->render('home/index.html.twig', [
  42.             'listArticles' => $articles// je passe des pamètres à vue
  43.             'listCategories' => $categories,
  44.         ]);
  45.     }
  46. }