📜  drupal 8 get taxonomy paretn (1)

📅  最后修改于: 2023-12-03 15:00:32.618000             🧑  作者: Mango

Drupal 8获取分类的父级

在Drupal 8中,要获取分类(Taxonomy)的父级,有以下两种方法:

  1. 使用Drupal函数

使用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()函数获取所有分类的父级。

  1. 使用Drupal的实体关系查询(Entity Query)

可以通过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模块来构建查询。