function TermStorage::getAncestors
Same name in other branches
- 9 core/modules/taxonomy/src/TermStorage.php \Drupal\taxonomy\TermStorage::getAncestors()
- 8.9.x core/modules/taxonomy/src/TermStorage.php \Drupal\taxonomy\TermStorage::getAncestors()
- 10 core/modules/taxonomy/src/TermStorage.php \Drupal\taxonomy\TermStorage::getAncestors()
Returns all ancestors of this term.
@internal @todo Refactor away when TreeInterface is introduced.
Return value
\Drupal\taxonomy\TermInterface[] A list of ancestor taxonomy term entities keyed by term ID.
1 call to TermStorage::getAncestors()
- TermStorage::loadAllParents in core/
modules/ taxonomy/ src/ TermStorage.php - Finds all ancestors of a given term ID.
File
-
core/
modules/ taxonomy/ src/ TermStorage.php, line 164
Class
- TermStorage
- Defines a Controller class for taxonomy terms.
Namespace
Drupal\taxonomyCode
protected function getAncestors(TermInterface $term) {
if (!isset($this->ancestors[$term->id()])) {
$this->ancestors[$term->id()] = [
$term->id() => $term,
];
$search[] = $term->id();
while ($tid = array_shift($search)) {
foreach ($this->getParents(static::load($tid)) as $id => $parent) {
if ($parent && !isset($this->ancestors[$term->id()][$id])) {
$this->ancestors[$term->id()][$id] = $parent;
$search[] = $id;
}
}
}
}
return $this->ancestors[$term->id()];
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.