kgaut.net // Développeur web PHP / Drupal freelance
contactez-moi

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

Cet article a été écrit il y a plus de quatre ans, son contenu n'est peut-être plus d'actualité.

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

 

Commentaires (0)