📅  最后修改于: 2023-12-03 15:00:32.618000             🧑  作者: Mango
在Drupal 8中,要获取分类(Taxonomy)的父级,有以下两种方法:
使用Drupal函数taxonomy_term_load_parents_all()
可以获取分类的所有父级。该函数需要一个分类对象(Term),将返回该分类的所有父级。如果分类没有父级,则返回一个空数组。
$tid = 123; // 分类的 ID
$term = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->load($tid);
$parents = taxonomy_term_load_parents_all($term);
上述代码片段中,我们首先加载分类,然后使用taxonomy_term_load_parents_all()
函数获取所有分类的父级。
可以通过Drupal的实体关系查询(Entity Query)来获取分类的父级。相比taxonomy_term_load_parents_all()
函数,实体关系查询更加灵活和强大。
$tid = 123; // 分类的 ID
$term = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->load($tid);
$parents = \Drupal::entityQuery('taxonomy_term')
->condition('tid', $term->parents->getValue()[0]['target_id'])
->execute();
上述代码片段中,我们首先加载分类,然后使用实体关系查询获取分类的父级。具体来说,我们使用$term->parents->getValue()[0]['target_id']
获取分类的第一个父级的ID,然后使用实体查询过滤器condition()
来选择拥有该ID的分类实体。
以上就是从Drupal 8中获取分类的父级的两种方法。如果你需要更加灵活和高级的分类查询,可以考虑使用Drupal的Views模块来构建查询。