Как получить идентификатор таксономии по названию? Друпал 9

При создании узла мне необходимо ввести идентификатор ссылки на объект в field_tag. Проблема в том, что у меня есть только ссылочное имя объекта.

Как я могу получить идентификатор термина (tid) для термина таксономии из имени термина?

Я очень удивлен, что нигде не могу найти ответ, так как это кажется мне простым, принципиальным вопросом.

      $node = Node::create([
        'type'  => 'news',
        'title' => $naslov,
        'body'  => $tekst,
        'field_tag'  => // Taxonomy reference name is "ostalo", I need it's ID here

        ],
      );
      $node->save();
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Разработка Drupal и AngularJS: Идеальное сочетание для вашей веб-стратегии
Разработка Drupal и AngularJS: Идеальное сочетание для вашей веб-стратегии
Один опытный веб-разработчик назвал комбинацию Drupal и AngularJS "сочетанием, созданным на небесах". Почему так? Потому что вместе они могут создать...
1
0
230
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете использовать функцию taxonomy_term_load_multiple_by_name.

например.
$tids = taxonomy_term_load_multiple_by_name('ostalo');

РЕДАКТИРОВАТЬ..
Упс, не понял, что смотрю на старую версию API. Как говорит Balde Binos, это устарело. Его ответ правильный.

Ответ принят как подходящий

Возможно, функция taxonomy_term_load_multiple_by_name устарела. Проверьте здесь.

Попробуйте использовать что-то вроде:

$vid = 'tags';
$term_name = 'ostalo';

$terms = \Drupal::entityTypeManager()
            ->getStorage('taxonomy_term')
            ->loadByProperties([
                    'vid' => $vid,
                    'name' =>$term_name,
                ]);

foreach ($terms as $term) {

    $term_id = $term->id();

}

Ты прав. Эти версии друпала сильно различаются по функциям, и это меня смутило. v9 все еще не хватает некоторых ответов. Спасибо что подметил это.

Benjamin A. Kovacevic 21.10.2022 00:48

Другие вопросы по теме

Похожие вопросы