Sur l'un de mes types de contenu, j'ai un champ de référence de terme de taxonomie qui permet plusieurs valeurs. Normalement, si je voulais le terme d'un domaine, je ferais simplement
$ node-> field_taxonomy_term-> entity;
Cependant, cela ne fonctionne pas s'il existe plusieurs entités. Normalement, je m'attendrais à ce que getValue () fasse l'affaire, mais cela donne simplement un tableau des identifiants avec target_id comme clé. J'ai en quelque sorte un moyen de les obtenir avec cette méthode
$entity_storage = \Drupal::entityTypeManager()->getStorage('taxonomy');
$ids = [];
foreach ($this->field_taxonomy_term->getValue() as $item) {
$ids[] = $item['target_id'];
}
$entities = $entity_storage->loadMultiple($ids);
Mais quand en obtenir un est aussi simple que $ node-> field_name-> entity, j'avais le sentiment que je fais plus de travail que nécessaire. Existe-t-il un moyen plus simple d'obtenir un tableau d'entités à partir d'un champ ou est-ce que je fais le moyen le plus efficace pour le faire?
Je ne peux pas dire avec certitude sur ce champ spécifique, mais il y a généralement la méthode referencedEntities () que vous pouvez appeler
Donc quelque chose comme ça peut-être:
$ entités = $ node-> field_taxonomy_term-> referencedEntities ();