function MenuExampleController::urlArgument
Same name in other branches
- 4.0.x modules/menu_example/src/Controller/MenuExampleController.php \Drupal\menu_example\Controller\MenuExampleController::urlArgument()
Demonstrates use of optional URL arguments in for menu item.
Parameters
string $arg1: First argument of URL.
string $arg2: Second argument of URL.
Return value
array Controller response.
See also
https://www.drupal.org/docs/8/api/routing-system/parameters-in-routes
1 string reference to 'MenuExampleController::urlArgument'
- menu_example.routing.yml in modules/
menu_example/ menu_example.routing.yml - modules/menu_example/menu_example.routing.yml
File
-
modules/
menu_example/ src/ Controller/ MenuExampleController.php, line 173
Class
- MenuExampleController
- Controller routines for menu example routes.
Namespace
Drupal\menu_example\ControllerCode
public function urlArgument($arg1, $arg2) {
// Perpare URL for single arguments.
$url_single = Url::fromRoute('examples.menu_example.use_url_arguments', [
'arg1' => 'one',
]);
// Prepare URL for multiple arguments.
$url_double = Url::fromRoute('examples.menu_example.use_url_arguments', [
'arg1' => 'one',
'arg2' => 'two',
]);
// Add these argument links to the page content.
$markup = $this->t('This page demonstrates using arguments in the url. For example, access it with @link_single for single argument or @link_double for two arguments in URL', [
'@link_single' => Link::createFromRoute($url_single->getInternalPath(), $url_single->getRouteName(), $url_single->getRouteParameters())
->toString(),
'@link_double' => Link::createFromRoute($url_double->getInternalPath(), $url_double->getRouteName(), $url_double->getRouteParameters())
->toString(),
]);
// Process the arguments if they're provided.
if (!empty($arg1)) {
$markup .= '<div>' . $this->t('Argument 1 = @arg', [
'@arg' => $arg1,
]) . '</div>';
}
if (!empty($arg2)) {
$markup .= '<div>' . $this->t('Argument 2 = @arg', [
'@arg' => $arg2,
]) . '</div>';
}
// Finally return the markup.
return [
'#markup' => $markup,
];
}