Partage
  • Partager sur Facebook
  • Partager sur Twitter

Affichage d'un menu en symfony

Categories et sous categories

Sujet résolu
    18 novembre 2017 à 9:33:43

    Bonjour,

    j'ai deux entités Menu et catégories qui sont liés : c a d chaque catégorie a un menu.

    je veux les afficher de façon hiérarchique : 

    Menu1

          Cat1

           Cat2

    Menu2

         Cat4

         Cat5

    voici mon controlleur :

     public function accueilAction()
        {
            
            // On récupère Active Slider
            $em = $this->getDoctrine()->getManager();
            $activ = $em->getRepository('EcommerceEcommerceBundle:ActiveSli')->findAll();
            
            // On récupère Slider
            $emg = $this->getDoctrine()->getManager();
            $slider = $emg->getRepository('EcommerceEcommerceBundle:Slider')->findAll();
            
            // On récupère Produits
            $emp = $this->getDoctrine()->getManager();
            $prod = $emp->getRepository('EcommerceEcommerceBundle:Produits')->findAll();
            
            // On récupère Menu
            $emm = $this->getDoctrine()->getManager();
            $menus = $emm->getRepository('EcommerceEcommerceBundle:Menu')->findAll();
               
            // On récupère cat
            
                    
            
            return $this->render('EcommerceEcommerceBundle:Default:accueil.html.twig',array('slider' => $slider,
                'activ' => $activ, 'produits' => $prod, 'menu' => $menus, 'cat' => $cat));
            
        }

    et voici le twig ou l'affichage :

    <div class="panel-group category-products" id="accordian"><!--category-productsr-->
    <div class="panel panel-default">
    
                                        
    <div class="panel-heading">
                                        
    <h4 class="panel-title">
    <a data-toggle="collapse" data-parent="#accordian" href="#P{{ m.id }}">
    <span class="badge pull-right"><i class="fa fa-plus"></i></span>
    
    //ICI le nom menu
     </a>
      </h4>                                    
      </div>
      <div id="P{{ m.id }}" class="panel-collapse collapse">
    <div class="panel-body">
    <ul>
    <li><a href="#"> //ICI les noms du categorie du menu  </a></li>
     </ul>
     </div>
    </div>
    </div>
    </div><!--/category-products-->

    Merci pour vos propositions

    • Partager sur Facebook
    • Partager sur Twitter
      18 novembre 2017 à 11:59:05

      Bonjour,

      Je prendrai le bundle KnpMenuBundle : https://symfony.com/doc/master/bundles/KnpMenuBundle/index.html

      Pour l'affichage, si tu utilises bootstrap, c'est avec <navs> ou <navbar> qu'il faut faire le menu.

      https://getbootstrap.com/docs/4.0/components/navs/

      A+

      • Partager sur Facebook
      • Partager sur Twitter
        20 novembre 2017 à 9:44:30

        Merci Pour la reponse,

        Mais mon probleme c'est pas dans l'affichage , c'est deja prêt dans le fichier TWIG, la question est la récuperation des données :

        je m'explique plus: je fais un site e-commerce (vente article) , j'ai une entité Menu avec un tableau dans la BD (Prêt à porter, Accessoires,...)

        et une autre entité catégories (les differents types d'articles (tuniques, robes, ...)) liés au menu . quand j'ajoute une catégorie je choisis le menu.

        j'ai fait l'extraction de tous les menus , et les tous les catégories.

        la question est comment je fais l'extraction des menu avec leurs catégories.

        EXP:

        Prêt à porter  +

                Tuniques

                Robes

                ...

        Accessoires +

            Bandes

            Colier

            ....

        Merci

        • Partager sur Facebook
        • Partager sur Twitter
          20 novembre 2017 à 10:22:24

          Il suffit de parcourir menu dans le twig pour avoir les catégories donc si je comprends bien le sous-menu.

          Donc il suffit à mon sens de faire 2 boucles imbirquées dans ton twig:

          un foreach menus as menu : là tu boucles sur tes menus

          et un foreach menu.categories as categorie : là tu boucles sur les catégories pour le menu en cours.

          Je ne vois pas où est la difficulté.

          A+

          • Partager sur Facebook
          • Partager sur Twitter
            20 novembre 2017 à 12:12:09

            Merci , j'ai utilisé les boucles imbriquées mais avec une condition pour la deuxième boucle

            et ça marche comme je veux;

            {% for m in menu %}
            
            1{% for c in categorie if c.menu == m.nom %}{{ c.nomcat }}{% endfor %}
            {% endfor %}



            • Partager sur Facebook
            • Partager sur Twitter
              20 novembre 2017 à 12:47:31

              Ce n'est pas la bonne méthode à mon sens mais si cela te convient.

              Bye

              • Partager sur Facebook
              • Partager sur Twitter

              Affichage d'un menu en symfony

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown