public MenuTreeStorage::loadByRoute($route_name, array $route_parameters = array(), $menu_name = NULL)
Loads multiple plugin definitions from the storage based on route.
Parameters
string $route_name: The route name.
array $route_parameters: (optional) The route parameters. Defaults to an empty array.
string $menu_name: (optional) Restricts the found links to just those in the named menu.
Return value
array An array of menu link definitions keyed by ID and ordered by depth.
Overrides MenuTreeStorageInterface::loadByRoute
File
- core/lib/Drupal/Core/Menu/MenuTreeStorage.php, line 663
Class
- MenuTreeStorage
- Provides a menu tree storage using the database.
Namespace
Drupal\Core\Menu
Code
public function loadByRoute($route_name, array $route_parameters = array(), $menu_name = NULL) { // Sort the route parameters so that the query string will be the same. asort($route_parameters); // Since this will be urlencoded, it's safe to store and match against a // text field. // @todo Standardize an efficient way to load by route name and parameters // in place of system path. https://www.drupal.org/node/2302139 $param_key = $route_parameters ? UrlHelper::buildQuery($route_parameters) : ''; $query = $this->connection->select($this->table, $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); } // Make the ordering deterministic. $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; }
Please login to continue.