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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 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.