如何在 Drupal 8 中获取分类术语的父代号

How do I get the parent tid of a taxonomy term in Drupal 8

我使用以下方法在 drupal 8 中获取分类术语的父项:

$parent = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->loadParents($termId);

$parent = reset($parent);

既然我有了父级,我该如何从中获取父级的 tid?

您可以拉动词汇树并筛选它。

// assuming $termId is the child tid..
$tree = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->loadTree('VOCABULARY_NAME', 0);
for ($tree as $term) {
  if (in_array($termId, $term->parents)) {
    $parent_term = $term;
    break;
  }
}

现在您有了 parent 和代码:

$parent = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->loadParents($termId);

$parent = reset($parent);

您可以简单地使用 $parent->id() 方法来获取您的 parent tid.

$parent_tid = $parent->id()
$term = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->load($term_id);
$parent_term_id = $term->parent->target_id;

如果存在,它将提供术语的父 ID。