<?php
namespace App\Controller\web;
use App\Entity\Category;
use App\Entity\Product;
use App\Entity\SubCategory;
use App\Form\CategoryType;
use App\Repository\CategoryRepository;
use App\Repository\ProductRepository;
use App\Service\AdminUtils;
use Cocur\Slugify\Slugify;
use Doctrine\ORM\EntityManagerInterface;
use Knp\Component\Pager\PaginatorInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\Routing\Annotation\Route;
class CategoryController extends AbstractController
{
private $categoryRepo;
private $productRepo;
public function __construct(CategoryRepository $categoryRepository, ProductRepository $productRepository)
{
$this->categoryRepo = $categoryRepository;
$this->productRepo = $productRepository;
}
/**
* @Route("/kategorija/{slug}", name="web_category")
* @return \Symfony\Component\HttpFoundation\Response
*/
public function list($slug){
/** @var Category $category */
$category = $this->categoryRepo->findOneBy(["slug" => $slug, "isActive" => true]);
if(!$category) {
return $this->redirectToRoute("web_home");
}
if($category->getUpload()){
return new BinaryFileResponse($this->getParameter('files_directory') . '/' . $category->getUpload());
}else{
$products = $this->productRepo->findBy(["category" => $category, "isActive" => true]);
return $this->render("web/category.html.twig", [
"category" => $category,
"products" => $products,
]);
}
}
}