src/Controller/ProductController.php line 23

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Product;
  4. use Doctrine\ORM\EntityManagerInterface;
  5. use Symfony\Component\HttpFoundation\Response;
  6. use Symfony\Component\Routing\Annotation\Route;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. class ProductController extends AbstractController
  9. {
  10.     private $entityManager;
  11.     public function __construct(EntityManagerInterface $entityManager)
  12.     {
  13.         $this->entityManager $entityManager;
  14.     }
  15.      /**
  16.      * @Route("/nos-produits", name="products")
  17.      */
  18.     public function index()
  19.     {
  20.         $products $this->entityManager->getRepository(Product::class)->findAll();
  21.         return $this->render('product/index.html.twig', [
  22.             'products' => $products,
  23.         ]);
  24.     }
  25.     /**
  26.      * @Route("/produit/{slug}", name="produit")
  27.      */
  28.     public function show($slug)
  29.     {
  30.         $product $this->entityManager->getRepository(Product::class)->findOneBySlug($slug);
  31.         if(!$product){
  32.             return $this->redirectToRoute('products');
  33.         }        
  34.         return $this->render('product/show.html.twig', [
  35.             'product' => $product,
  36.         ]);
  37.     }   
  38.     /**
  39.      * @Route("/product_by_category/{category}", name="product_by_category")
  40.      */
  41.     public function showProductsCategory($category)
  42.     {
  43.         $queryBuilder $this->entityManager->createQueryBuilder();
  44.     
  45.         $queryBuilder->select('p')
  46.             ->from('App\Entity\Product''p')
  47.             ->join('p.category''c')
  48.             ->where($queryBuilder->expr()->eq('c.name'':category'))
  49.             ->setParameter('category'$category);
  50.     
  51.         $productsByCategory $queryBuilder->getQuery()->getResult();
  52.     
  53.         return $this->render('product/showProductByCategory.html.twig', [
  54.             'productsByCategory' => $productsByCategory,
  55.             'category' => $category,
  56.         ]);
  57.     }
  58.     
  59. }