コンテンツタイプの1つに、複数の値を許可する分類用語参照フィールドがあります。通常、フィールドからの用語が必要な場合は、単に行います
$ node-> field_taxonomy_term-> entity;
ただし、複数のエンティティがある場合、これは機能しません。通常、私はgetValue()がトリックを実行することを期待しますが、それはキーとしてtarget_idを持つIDの配列を提供するだけです。この方法でそれらを取得する方法について
$entity_storage = \Drupal::entityTypeManager()->getStorage('taxonomy');
$ids = [];
foreach ($this->field_taxonomy_term->getValue() as $item) {
$ids[] = $item['target_id'];
}
$entities = $entity_storage->loadMultiple($ids);
しかし、取得するのが$ node-> field_name-> entityのように単純な場合、私は必要以上に多くの作業をしているように感じました。フィールドからエンティティの配列を取得する簡単な方法はありますか?それを行うために最も効率的な方法は何ですか?
私はその特定のフィールドについて確かに言うことはできませんが、通常、あなたが呼び出すことができるreferencedEntities()メソッドがあります
だから、おそらくこのようなもの:
$ entities = $ node-> field_taxonomy_term-> referencedEntities();