src/Controller/Front/BlogController.php line 63

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Front;
  3. use App\Entity\Article;
  4. use App\Entity\BlogCategory;
  5. use App\Repository\ArticleRepository;
  6. use App\Repository\BlogCategoryRepository;
  7. use Knp\Component\Pager\PaginatorInterface;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. /**
  12.  * @Route("/blog")
  13.  */
  14. class BlogController extends AbstractController
  15. {
  16.     /**
  17.      * @Route("/articles/{page}", defaults={"page"=1}, requirements={"page"="\d+"}, name="front_blog_list")
  18.      */
  19.     public function list(Request $request,int $pageArticleRepository $articleRepositoryPaginatorInterface $paginatorBlogCategoryRepository $blogCategoryRepository)
  20.     {
  21.         $articles $articleRepository->findBy([], ['publishedAt' => 'DESC']);
  22.         $lastArticles $articleRepository->findBy([], ['publishedAt' => 'DESC'], 5);
  23.         $pagination $paginator->paginate(
  24.             $articles,
  25.             $page/*page number*/
  26.             /*limit per page*/
  27.         );
  28.         return $this->render('front/blog/list.html.twig', [
  29.             'articles' => $pagination,
  30.             'categories' => $blogCategoryRepository->findBy([], ['name' => 'ASC']),
  31.             'lastArticles' => $lastArticles
  32.         ]);
  33.     }
  34.     /**
  35.      * @Route("/articles/categorie/{categorySlug}/{page}", defaults={"page"=1}, requirements={"page"="\d+"}, name="front_blog_category_list")
  36.      */
  37.     public function categoryList(
  38.         BlogCategory $blogCategory,
  39.         int $page,
  40.         ArticleRepository $articleRepository,
  41.         PaginatorInterface $paginator,
  42.         BlogCategoryRepository $blogCategoryRepository)
  43.     {
  44.         $articles $articleRepository->findBy(['blogCategory' => $blogCategory], ['publishedAt' => 'DESC']);
  45.         $lastArticles $articleRepository->findBy([], ['publishedAt' => 'DESC'], 5);
  46.         $pagination $paginator->paginate(
  47.             $articles,
  48.             $page/*page number*/
  49.             /*limit per page*/
  50.         );
  51.         return $this->render('front/blog/list.html.twig', [
  52.             'articles' => $pagination,
  53.             'categorySelected' => $blogCategory,
  54.             'categories' => $blogCategoryRepository->findBy([], ['name' => 'ASC']),
  55.             'lastArticles' => $lastArticles
  56.         ]);
  57.     }
  58.     /**
  59.      * @Route("/{categorySlug}/{slug}", name="front_blog_single")
  60.      */
  61.     public function single(BlogCategory $blogCategoryArticle $articleBlogCategoryRepository $blogCategoryRepositoryArticleRepository $articleRepository)
  62.     {
  63.         $lastArticles $articleRepository->findBy([], ['publishedAt' => 'DESC'], 5);
  64.         return $this->render('front/blog/single.html.twig', [
  65.             'article' => $article,
  66.             'categories' => $blogCategoryRepository->findBy([], ['name' => 'ASC']),
  67.             'lastArticles' => $lastArticles
  68.         ]);
  69.     }
  70. }