public function MenuTreeStorage::getAllChildIds in Drupal 9
Same name and namespace in other branches
- 8 core/lib/Drupal/Core/Menu/MenuTreeStorage.php \Drupal\Core\Menu\MenuTreeStorage::getAllChildIds()
Loads all the IDs for menu links that are below the given ID.
Parameters
string $id: The parent menu link ID.
Return value
array An unordered array of plugin IDs corresponding to all children.
Overrides MenuTreeStorageInterface::getAllChildIds
File
- core/
lib/ Drupal/ Core/ Menu/ MenuTreeStorage.php, line 1064
Class
- MenuTreeStorage
- Provides a menu tree storage using the database.
Namespace
Drupal\Core\MenuCode
public function getAllChildIds($id) {
$root = $this
->loadFull($id);
if (!$root) {
return [];
}
$query = $this->connection
->select($this->table, NULL, $this->options);
$query
->fields($this->table, [
'id',
]);
$query
->condition('menu_name', $root['menu_name']);
for ($i = 1; $i <= $root['depth']; $i++) {
$query
->condition("p{$i}", $root["p{$i}"]);
}
// The next p column should not be empty. This excludes the root link.
$query
->condition("p{$i}", 0, '>');
return $this
->safeExecuteSelect($query)
->fetchAllKeyed(0, 0);
}