Outils pour utilisateurs

Outils du site


symfony4:twig_affichage_arborescence

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
symfony4:twig_affichage_arborescence [2020/04/07 12:44]
marclebrun
— (Version actuelle)
Ligne 1: Ligne 1:
-====== Affichage d'une arborescence ====== 
- 
-Voici une arborescence constituée d'une entité Catégorie ayant des 
-propriétés **parent**, **enfants** et **ordre**. 
- 
-Dans le contrôleur,​ on récupère d'​abord toutes les catégories de niveau 
-supérieur, c-à-d celles dont le parent est ''​null''​. 
- 
-<code php MonControleur.php>​ 
-public function categories(CategoriesRepository $repo) { 
- 
-    // Lire toutes les catégories de niveau supérieur 
-    $categs = $repo->​findByParent(null);​ 
-    ​ 
-    // Envoyer ces catégories au template Twig 
-    return $this->​render('​mon_controleur/​liste_categories.html.twig',​ [ 
-        '​categories'​ => $categs 
-    ]); 
-} 
-</​code>​ 
- 
-Le code **Twig** ci-dessous utilise une macro qui sera appelée récursivement 
-pour afficher les catégories et leurs enfants. 
- 
-À chaque boucle ''​for'',​ les élements sont triés (filtre ''​sort''​) sur base 
-de leur propriété ''​ordre''​. 
- 
-<code twig mon_controleur/​liste_categories.html.twig>​ 
-{% extends '​base.html.twig'​ %} 
- 
-{% macro afficheCateg(categorie) %} 
-    <ul> 
-        <​li>#​{{categorie.ordre}} : {{categorie.id}}. {{categorie.denom}}</​li>​ 
-        {% for enfant in categorie.enfants | sort((a, b) => a.ordre <=> b.ordre) %} 
-            {{ _self.afficheCateg(enfant) }} 
-        {% endfor %} 
-    </ul> 
-{% endmacro %} 
- 
-{% block body %} 
-<​h1>​Catégories</​h1>​ 
- 
-{% for categorie in categories | sort((a, b) => a.ordre <=> b.ordre) %} 
-  {{ _self.afficheCateg(categorie) }} 
-{% endfor %} 
- 
-{% endblock %} 
-</​code>​ 
  
symfony4/twig_affichage_arborescence.1586263461.txt.gz · Dernière modification: 2020/04/07 12:44 (modification externe)