src/Controller/App/BlogController.php line 59

Open in your IDE?
  1. <?php
  2. /**
  3.  * @author <akartis-dev>
  4.  */
  5. namespace App\Controller\App;
  6. use App\Controller\AppAbstractController;
  7. use App\Entity\Blog\BlogCategories;
  8. use App\ObjectManager\EntityObjectManager;
  9. use App\Repository\Blog\BlogCategoriesRepository;
  10. use App\Repository\Blog\BlogRepository;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. #[Route('/{_locale}/blog')]
  14. class BlogController extends AppAbstractController
  15. {
  16.     public const BLOG_PAGE_LIMIT 5;
  17.     public function __construct(
  18.         private EntityObjectManager $em
  19.     )
  20.     {
  21.     }
  22.     #[Route('/'name"blog_index")]
  23.     public function index(Request $requestBlogRepository $blogRepositoryBlogCategoriesRepository $blogCategoriesRepository)
  24.     {
  25.         $query $blogRepository->findActive();
  26.         $blogs $this->em->paginate($query$requestself::BLOG_PAGE_LIMIT);
  27.         $categories $blogCategoriesRepository->findActive();
  28.         return $this->render('pages/blog_index.html.twig', [
  29.             'blogs' => $blogs,
  30.             'categories' => $categories
  31.         ]);
  32.     }
  33.     #[Route('/category/{id}'name"blog_category")]
  34.     public function category(?BlogCategories $categoriesRequest $requestBlogRepository $blogRepositoryBlogCategoriesRepository $blogCategoriesRepository)
  35.     {
  36.         if (!$categories) {
  37.             return $this->redirectToRoute("blog_index");
  38.         }
  39.         $query $blogRepository->findByCategory($categories);
  40.         $blogs $this->em->paginate($query$requestself::BLOG_PAGE_LIMIT);
  41.         $categories $blogCategoriesRepository->findActive();
  42.         return $this->render('pages/blog_index.html.twig', [
  43.             'blogs' => $blogs,
  44.             'categories' => $categories
  45.         ]);
  46.     }
  47.     #[Route('/{slug}'name"blog_view")]
  48.     public function view(string $slugBlogRepository $blogRepositoryBlogCategoriesRepository $blogCategoriesRepository)
  49.     {
  50.         $blog $blogRepository->findBySlug($slug);
  51.         $categories $blogCategoriesRepository->findActive();
  52.         return $this->render('pages/blog_view.html.twig', [
  53.             'blog' => $blog,
  54.             'categories' => $categories
  55.         ]);
  56.     }
  57. }