src/Controller/ProduitController.php line 22

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Produit;
  4. use App\Entity\Categorie;
  5. use App\Repository\ProduitRepository;
  6. use App\Repository\PhotoProduitRepository;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  11. class ProduitController extends AbstractController
  12. {
  13.     /* pour  faire les routes  catalogue et fiche produit */
  14.     /**
  15.      * @Route("/catalogue", name="catalogue")
  16.      */
  17.     public function catalogue(ProduitRepository $repoProduit): Response
  18.     {
  19.         $produitsArray $repoProduit->findBy(array(), array('position'=>'ASC'));
  20.         return $this->render('produit/catalogue.html.twig', [
  21.             "produits" => $produitsArray,
  22.             "categorie" => 'Tous'
  23.         ]);
  24.     }
  25.    
  26.      /**
  27.      * @Route("/categorie/{id}", name="categorie")
  28.      */
  29.     public function categorie (ProduitRepository $repoProduit Categorie $categorie): Response  
  30.     {
  31.        
  32.         $categorieId $categorie->getId();
  33.         $produits $repoProduit->findBy(array('categorie'=>$categorie), array('position'=>'ASC'));
  34.         return $this->render('produit/catalogue.html.twig', [
  35.             "produits" => $produits,
  36.             "categorie" => $categorie
  37.         ]);
  38.     }
  39.     /**
  40.      * @Route("/showcase", name="showcase")
  41.      */
  42.     public function showcase(ProduitRepository $repoProduit): Response
  43.     
  44.    
  45.     {
  46.         $produitsArray $repoProduit->findAll();
  47.         $produitShowcase = [];
  48.         foreach ( $produitsArray as $produit){
  49.             $showcase =$produit->getShowcase();
  50.             if ($showcase) {
  51.                $produitShowcase[] = $produit;
  52.             }
  53.         }
  54.     
  55.         return $this->render('produit/showcase.html.twig', [
  56.             "produitsShowcase" => $produitShowcase
  57.         ]);
  58.   
  59.     }
  60.     /**
  61.      * @Route("/fiche-produit/{id}", name="fiche_produit")
  62.      * 
  63.      * <\d+> est pour limité le paramètre aux entiers
  64.      */
  65.     public function fiche_produit($idProduitRepository $repoProduit,Request $request): Response
  66.     {
  67.         // si la requête vient du catalogue 
  68.         $produit $repoProduit->find($id);
  69.        
  70.       
  71.          // on recupère les photos du produit concerné pour alimenter les vignettes du caroussel c'est plus direct pour les récupérer en javascript que sous forme de varianle TWIG
  72.          $photos $produit->getPhotoProduits();
  73.          $nomPhotos =[];
  74.          foreach ( $photos as $photo) {
  75.              $nomPhotos []=$photo->getNom();
  76.          }
  77.      
  78.         $nomPhotos_str json_encode($nomPhotos) ;
  79.         return $this->render('produit/fiche_produit.html.twig', [
  80.             'produit'=>$produit,
  81.             'photos'=>$nomPhotos_str,
  82.            
  83.         ]);
  84.     }
  85.     
  86. //fin de class