src/Controller/MenuController.php line 92

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\MenuCat;
  4. use App\Entity\Producto;
  5. use App\Entity\ProductType;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. class MenuController extends AbstractController
  11. {
  12.     protected $em;
  13.     public function __construct(EntityManagerInterface $manager)
  14.     {
  15.         $this->em $manager;
  16.     }
  17.     /**
  18.      * @Route("/menu", name="menu")
  19.      */
  20.     public function index(): Response
  21.     {
  22.         return $this->render('menu/index.html.twig', [
  23.             'controller_name' => 'MenĂº',
  24.         ]);
  25.     }
  26.     /**
  27.      * @Route("/menu/{slug}", name="menu_cat")
  28.      */
  29.     public function categoria($slug): Response
  30.     {
  31.         $subcats = []; $types = []; $cname 'Menu';
  32.         $productos = []; $children = [];
  33.         $hasSubcats 0$hasProds 0;
  34.         if($slug == 'all'){
  35.             $children $this->em->getRepository(MenuCat::class)->findBy(['isActivo'=>1'parent'=>null]);
  36. //dd($children);
  37.             $cat = new MenuCat();
  38.             $cat->setSlug('all')->setContent('Menu');
  39.         }else{
  40.             $cat $this->em->getRepository(MenuCat::class)->findOneBy(['slug'=>$slug'isActivo'=>1]);
  41.             if($cat){
  42.                 $children $cat->getChildren();
  43.                 $productos $this->em->getRepository(Producto::class)->findByCat($cat);
  44.             }
  45.         }
  46.         if($slug == 'artesanales'){
  47.             $types $this->em->getRepository(ProductType::class)->findBy(['isActivo' => 1]);
  48.         }
  49.         if($children){
  50.             foreach ($children as $child){
  51.                 if($child->getIsActivo()) $subcats[] = $child;
  52.             }
  53.         }
  54.         if($subcats$hasSubcats 1;
  55.         if($productos$hasProds 1;
  56. //dd($productos);
  57.         if(in_array($slug, ['artesanales''domesticas'])){
  58.             $cname 'Cervezas '$slug;
  59.             return $this->render('menu/cervezasa.html.twig', [
  60.                 'types' => $types,
  61.             'prods' => $productos,
  62.                 'cat' => $cat,
  63.                 'controller_name' => $cname,
  64.             ]);
  65.         }
  66.         return $this->render('menu/index.html.twig', [
  67.             'controller_name' => $cname,
  68.             'cat' => $cat,
  69.             'children' => $children,
  70.             'subcats' => $subcats,
  71.             'prods' => $productos,
  72.             'hasSubcats' => $hasSubcats,
  73.             'hasProds' => $hasProds,
  74.         ]);
  75.     }
  76.     /**
  77.      * @Route("/menu/item/{slug}", name="menu_item")
  78.      */
  79.     public function item($slug): Response
  80.     {
  81.         $prod $this->em->getRepository(Producto::class)->findOneBy(['slug'=>$slug]);
  82.         return $this->render('menu/item.html.twig', [
  83.             'controller_name' => $prod->getContent(),
  84.             'prod' => $prod,
  85.         ]);
  86.     }
  87. }