как получить все дети идентификатор таксономии в Drupal
У меня есть таксономия с 3 уровнями детей. Мне нужно получить весь уровень детей от родительского tid.
taxonomy_get_children($tid) - дает прямые потомки только этого конкретного $tid. Но не все внуки.
Как я могу это обработать?
Спасибо,
У вопроса есть решение - Посмотреть?
Ответы - как получить все дети идентификатор таксономии в Drupal / how to get all taxonomy children id in drupal

24.02.2014 03:53:53
Глядя на https://api.drupal.org/api/drupal/modules%21taxonomy%21taxonomy.module/function/taxonomy_get_children/7 и https://api.drupal.org/api/drupal/modules%21taxonomy%21taxonomy.module/function/taxonomy_get_children/6 Вы должны получить несколько результатов. Какой Друпал вы используете ?

Я использую drupal 7

Используя функцию drupal 7 (taxonomy_get_children), я не могу отобразить весь уровень детей

Кажется, что он использует api.drupal.org/api/drupal/modules%21taxonomy%21taxonomy.module/... который должен возвращать несколько результатов.

24.02.2014 05:17:52
function taxonomy_get_children_all($tid, $vid = 0, $key = 'tid'){
$c = taxonomy_get_children($tid, $vid, $key);
$result = array();
foreach ($c as $t => $d){
$result[$t] = $d;
$below = taxonomy_get_children_all($t, $vid, $key);
if (!empty($below)) {
foreach ($below as $nt => $nd){
$result[$nt] = $nd;
}
}
}
return $result;
}
Ссылка: https://drupal.org/node/381952

Это очень полезно, но есть ли шанс сделать то же самое с помощью SQL-запроса ?

14.11.2019 08:38:15
$tree = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->loadTree('MACHINE_VOCABULARY_NAME');
foreach ($tree as $term) {
$termID[] = array(
'termId' => $term->tid,
'parent'=> $term->parents,
'depth' => $term->depth
);
}
dump($termID);
Помочь в развитии проекта: