как получить все дети идентификатор таксономии в Drupal

как получить все дети идентификатор таксономии в Drupal

24.02.2014 03:37:53 Просмотров 73 Источник

У меня есть таксономия с 3 уровнями детей. Мне нужно получить весь уровень детей от родительского tid.

taxonomy_get_children($tid) - дает прямые потомки только этого конкретного $tid. Но не все внуки.

Как я могу это обработать?

Спасибо,

У вопроса есть решение - Посмотреть?

Ответы - как получить все дети идентификатор таксономии в Drupal / how to get all taxonomy children id in drupal

Adi

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 Вы должны получить несколько результатов. Какой Друпал вы используете ?

https://stackoverflow.com/questions/21986633/how-to-get-all-taxonomy-children-id-in-drupal/21987026#comment33320751_21987026
Я использую drupal 7
https://stackoverflow.com/questions/21986633/how-to-get-all-taxonomy-children-id-in-drupal/21987026#comment33320920_21987026
Используя функцию drupal 7 (taxonomy_get_children), я не могу отобразить весь уровень детей
https://stackoverflow.com/questions/21986633/how-to-get-all-taxonomy-children-id-in-drupal/21987026#comment33322872_21987026
Кажется, что он использует api.drupal.org/api/drupal/modules%21taxonomy%21taxonomy.module/... который должен возвращать несколько результатов.
Navane

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

https://stackoverflow.com/questions/21986633/how-to-get-all-taxonomy-children-id-in-drupal/21988952#comment54977403_21988952
Это очень полезно, но есть ли шанс сделать то же самое с помощью SQL-запроса ?
Wasim Khan

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);
Помочь в развитии проекта:
Закрыть X