src/Controller/CategoryController.php line 21

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Category;
  4. use App\Repository\ArticleRepository;
  5. use Knp\Component\Pager\PaginatorInterface;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. /**
  11.  * @Route("/category")
  12.  */
  13. class CategoryController extends AbstractController
  14. {
  15.     /**
  16.      * @Route("/{slug}", name="category_show")
  17.      */
  18.     public function show(
  19.         Category $category,
  20.         Request $request,
  21.         ArticleRepository $articleRepo,
  22.         PaginatorInterface $paginator
  23.     ): Response {
  24.         if (!$category->getIsActive()) {
  25.             throw $this->createNotFoundException('Catégorie non disponible');
  26.         }
  27.         $query $articleRepo->createQueryBuilder('a')
  28.             ->where('a.category = :category')
  29.             ->andWhere('a.status = :status')
  30.             ->setParameter('category'$category)
  31.             ->setParameter('status'\App\Entity\Article::STATUS_PUBLISHED)
  32.             ->orderBy('a.publishedAt''DESC')
  33.             ->getQuery();
  34.         $articles $paginator->paginate(
  35.             $query,
  36.             $request->query->getInt('page'1),
  37.             12
  38.         );
  39.         return $this->render('category/show.html.twig', [
  40.             'category' => $category,
  41.             'articles' => $articles,
  42.         ]);
  43.     }
  44. }