src/Controller/web/CategoryController.php line 37

Open in your IDE?
  1. <?php
  2. namespace App\Controller\web;
  3. use App\Entity\Category;
  4. use App\Entity\Product;
  5. use App\Entity\SubCategory;
  6. use App\Form\CategoryType;
  7. use App\Repository\CategoryRepository;
  8. use App\Repository\ProductRepository;
  9. use App\Service\AdminUtils;
  10. use Cocur\Slugify\Slugify;
  11. use Doctrine\ORM\EntityManagerInterface;
  12. use Knp\Component\Pager\PaginatorInterface;
  13. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  14. use Symfony\Component\HttpFoundation\BinaryFileResponse;
  15. use Symfony\Component\HttpFoundation\RequestStack;
  16. use Symfony\Component\Routing\Annotation\Route;
  17. class CategoryController extends AbstractController
  18. {
  19.     private $categoryRepo;
  20.     private $productRepo;
  21.     public function __construct(CategoryRepository $categoryRepositoryProductRepository $productRepository)
  22.     {
  23.         $this->categoryRepo $categoryRepository;
  24.         $this->productRepo $productRepository;
  25.     }
  26.     /**
  27.      * @Route("/kategorija/{slug}", name="web_category")
  28.      * @return \Symfony\Component\HttpFoundation\Response
  29.      */
  30.     public function list($slug){
  31.         /** @var Category $category */
  32.         $category $this->categoryRepo->findOneBy(["slug" => $slug"isActive" => true]);
  33.         if(!$category) {
  34.             return $this->redirectToRoute("web_home");
  35.         }
  36.         if($category->getUpload()){
  37.             return new BinaryFileResponse($this->getParameter('files_directory') . '/' $category->getUpload());
  38.         }else{
  39.             $products $this->productRepo->findBy(["category" => $category"isActive" => true]);
  40.             return $this->render("web/category.html.twig", [
  41.                 "category" => $category,
  42.                 "products" => $products,
  43.             ]);
  44.         }
  45.     }
  46. }