src/Controller/CategoriesController.php line 16

  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Categories;
  4. use App\Repository\ProductsRepository;
  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. #[Route('/categories', name: 'categories_')]
  10. class CategoriesController extends AbstractController
  11. {
  12.     #[Route('/{slug}', name: 'list')]
  13.     public function details(Categories $category, ProductsRepository $productsRepository,
  14.     Request $request): Response
  15.     {
  16.         //On va chercher le numéro de page dans l'url
  17.         $page = $request->query->getInt('page', 1);
  18.         //On va chercher la liste des produits de la catégorie
  19.         $products = $productsRepository->findProductsPaginated($page, $category->getSlug(), 3);
  20.         //La fonction compact() va chercher $product et en fait un tableau associatif
  21.         return $this->render('categories/list.html.twig', compact('category', 'products'));
  22.         /*
  23.         Autre syntaxe possible sans le compact()
  24.          return $this->render('categories/list.html.twig', [
  25.              'category' => $category,
  26.              'products' => $products
  27.          ]);
  28.         */
  29.     }
  30. }