【问题标题】:how to get all taxonomy children id in drupal如何在drupal中获取所有分类儿童ID
【发布时间】:2014-02-24 11:37:53
【问题描述】:

我有 3 个级别的孩子的分类。我需要通过父母 tid 获得所有级别的孩子。

taxonomy_get_children($tid) - 仅给出该特定 $tid 的直接子代。但不是所有的孙子。

我该如何处理?

谢谢,

【问题讨论】:

    标签: drupal drupal-taxonomy


    【解决方案1】:
    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 查询来做同样的事情吗?
    【解决方案2】:

    【讨论】:

    【解决方案3】:
    $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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多