public LocalTaskDefault::getRouteParameters(RouteMatchInterface $route_match)
Returns the route parameters needed to render a link for the local task.
Parameters
\Drupal\Core\Routing\RouteMatchInterface $route_match: The current route match.
Return value
array An array of parameter names and values.
Overrides LocalTaskInterface::getRouteParameters
File
- core/lib/Drupal/Core/Menu/LocalTaskDefault.php, line 43
Class
- LocalTaskDefault
- Default object used for LocalTaskPlugins.
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 26 27 28 29 30 | public function getRouteParameters(RouteMatchInterface $route_match ) { $parameters = isset( $this ->pluginDefinition[ 'route_parameters' ]) ? $this ->pluginDefinition[ 'route_parameters' ] : array (); $route = $this ->routeProvider()->getRouteByName( $this ->getRouteName()); $variables = $route ->compile()->getVariables(); // Normally the \Drupal\Core\ParamConverter\ParamConverterManager has // processed the Request attributes, and in that case the _raw_variables // attribute holds the original path strings keyed to the corresponding // slugs in the path patterns. For example, if the route's path pattern is // /filter/tips/{filter_format} and the path is /filter/tips/plain_text then // $raw_variables->get('filter_format') == 'plain_text'. $raw_variables = $route_match ->getRawParameters(); foreach ( $variables as $name ) { if (isset( $parameters [ $name ])) { continue ; } if ( $raw_variables && $raw_variables ->has( $name )) { $parameters [ $name ] = $raw_variables ->get( $name ); } elseif ( $value = $route_match ->getRawParameter( $name )) { $parameters [ $name ] = $value ; } } // The UrlGenerator will throw an exception if expected parameters are // missing. This method should be overridden if that is possible. return $parameters ; } |
Please login to continue.