При создании узла мне необходимо ввести идентификатор ссылки на объект в 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();



Вы можете использовать функцию 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 все еще не хватает некоторых ответов. Спасибо что подметил это.