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

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);

 

Ajouter un commentaire

Ne sera pas publié
CAPTCHA
Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...