public function MenuTreeStorage::loadByRoute in Drupal 10
Same name and namespace in other branches
- 8 core/lib/Drupal/Core/Menu/MenuTreeStorage.php \Drupal\Core\Menu\MenuTreeStorage::loadByRoute()
- 9 core/lib/Drupal/Core/Menu/MenuTreeStorage.php \Drupal\Core\Menu\MenuTreeStorage::loadByRoute()
File
- core/lib/Drupal/Core/Menu/MenuTreeStorage.php, line 682
Class
- MenuTreeStorage
- Provides a menu tree storage using the database.
Namespace
Drupal\Core\Menu
Code
public function loadByRoute($route_name, array $route_parameters = [], $menu_name = NULL) {
asort($route_parameters);
$param_key = $route_parameters ? UrlHelper::buildQuery($route_parameters) : '';
$query = $this->connection
->select($this->table, NULL, $this->options);
$query
->fields($this->table, $this
->definitionFields());
$query
->condition('route_name', $route_name);
$query
->condition('route_param_key', $param_key);
if ($menu_name) {
$query
->condition('menu_name', $menu_name);
}
$query
->orderBy('depth');
$query
->orderBy('weight');
$query
->orderBy('id');
$loaded = $this
->safeExecuteSelect($query)
->fetchAllAssoc('id', \PDO::FETCH_ASSOC);
foreach ($loaded as $id => $link) {
$loaded[$id] = $this
->prepareLink($link);
}
return $loaded;
}