web-dev-qa-db-ja.com

分類に割り当てられたカスタムフィールドを取得する

Drupal 8.)で分類に割り当てられたカスタムフィールドを取得する方法。これまでに行ったことは次のとおりです。

$contact_countries = \Drupal::service('entity_type.manager')->getStorage("taxonomy_term")->loadTree('contact_country');

$ contact_countriesが分類法を保持するようになりました。分類法の名前とIDを取得できますが、分類法でカスタムフィールドも作成しましたが、どうすれば取得できますか?

このコードで

foreach($contact_countries as $contact_countrie) {
        $terms[] = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->load($contact_countrie->tid);
        $variables['contact_countries'] = $terms;
    }

保護された値を持つオブジェクト(Drupal\taxonomy\Entity\Term)を取得しています。そこでカスタムフィールド値を表示できますが、アクセスできません。

6
RomkaLTU
2
Kevin

私はそれを次のように行いました:

$contact_countries = \Drupal::service('entity_type.manager')->getStorage("taxonomy_term")->loadTree('contact_country');

$terms = array();

foreach($contact_countries as $contact_countrie) {
    $terms[] = array(
        'contact_country' => $contact_countrie->name,
        'contact_phone' => \Drupal::entityTypeManager()->getStorage('taxonomy_term')->load($contact_countrie->tid)->get('field_phone')->getValue()[0]['value'],
        'contact_flag' => \Drupal::entityTypeManager()->getStorage('taxonomy_term')->load($contact_countrie->tid)->get('field_category_flag')->entity->uri->value,
    );
}

ここにフィールドfield_phone(テキストフィールド)とfield_category_flag(ファイルフィールド)があります。

5
RomkaLTU

私はこのようにしました。

$countries = \Drupal::service('entity_type.manager')->getStorage("taxonomy_term")->loadTree('countries',0,NULL,TRUE);

/* Using First Country : $countries[0] */
$region = $countries[0]->get('field_region')->target_id;
$description = $countries[0]->get('field_description')->value;
2
Ashok Gj