web-dev-qa-db-ja.com

Entity Type Managerによるエンティティのクエリと読み込み

現在、私は最初に、Drupal 8:

$termIds = \Drupal::entityQuery('taxonomy_term')
  ->condition('field_code', $code)
  ->condition('vid', 'computer')
  ->execute();

そして、分類用語エンティティをロードしています:

      $termId = current($termIds);
      $term = \Drupal::entityTypeManager()
        ->getStorage('taxonomy_term')
        ->load($termId);

これらの2つではなく、1つのステップでそれを行う方法はありますか?

6
jepster

loadByProperties() を使用すると、これを1つのステップで実行できます。

$term = current(\Drupal::entityTypeManager()->getStorage('taxonomy_term')
  ->loadByProperties(['field_code' => $code, 'vid' => 'computer'])
);

このメソッドは、ここにあるような基本的なエンティティクエリのショートカットであり、エンティティをロードする手順も含まれています。

9
4k4