- <?php
- namespace App\Controller;
- use App\Entity\Product;
- use Doctrine\ORM\EntityManagerInterface;
- use Symfony\Component\HttpFoundation\Response;
- use Symfony\Component\Routing\Annotation\Route;
- use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
- class ProductController extends AbstractController
- {
-     private $entityManager;
-     public function __construct(EntityManagerInterface $entityManager)
-     {
-         $this->entityManager = $entityManager;
-     }
-      /**
-      * @Route("/nos-produits", name="products")
-      */
-     public function index()
-     {
-         $products = $this->entityManager->getRepository(Product::class)->findAll();
-         return $this->render('product/index.html.twig', [
-             'products' => $products,
-         ]);
-     }
-     /**
-      * @Route("/produit/{slug}", name="produit")
-      */
-     public function show($slug)
-     {
-         $product = $this->entityManager->getRepository(Product::class)->findOneBySlug($slug);
-         if(!$product){
-             return $this->redirectToRoute('products');
-         }        
-         return $this->render('product/show.html.twig', [
-             'product' => $product,
-         ]);
-     }   
-     /**
-      * @Route("/product_by_category/{category}", name="product_by_category")
-      */
-     public function showProductsCategory($category)
-     {
-         $queryBuilder = $this->entityManager->createQueryBuilder();
-     
-         $queryBuilder->select('p')
-             ->from('App\Entity\Product', 'p')
-             ->join('p.category', 'c')
-             ->where($queryBuilder->expr()->eq('c.name', ':category'))
-             ->setParameter('category', $category);
-     
-         $productsByCategory = $queryBuilder->getQuery()->getResult();
-     
-         return $this->render('product/showProductByCategory.html.twig', [
-             'productsByCategory' => $productsByCategory,
-             'category' => $category,
-         ]);
-     }
-     
- }
-