Drupal 8 & Drupal 9 - Taxonomy - Charger l'arborescence d'un vocabulaire

Posté le Lundi 18 juillet 2016 - 11:33
Dernière mise à jour le Mercredi 10 juin 2020 - 15:16

Pour charger toute l'arborescence :

$categories = \Drupal::service('entity_type.manager')
  ->getStorage('taxonomy_term')
  ->loadTree('NOM_MACHINE_VOCABULAIRE');

Pour charger que l'arborescence en partant d'un taxon (term) donné :

$categories = \Drupal::service('entity_type.manager')
  ->getStorage('taxonomy_term')
  ->loadTree('NOM_MACHINE_VOCABULAIRE', $term_tid);

Pour charger que le premier niveau :

$categories = \Drupal::service('entity_type.manager')
  ->getStorage("taxonomy_term")
  ->loadTree('NOM_MACHINE_VOCABULAIRE', 0, 1);

Par défaut les taxons ne seront pas chargés sous la forme d'instance de la classe Term, mais de Stdclass (ne me demandez pas pourquoi...)

Si vous souhaitez avoir un ensemble d'objets Term, il faudra pour cela passer un 4e paramètre à la fonction :

$categories = \Drupal::service('entity_type.manager')
  ->getStorage('taxonomy_term')
  ->loadTree('NOM_MACHINE_VOCABULAIRE', 0, 1, TRUE);

 

Aller plus loin ?

Ajouter un commentaire

Ne sera pas publié

Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...