function PageExampleController::arguments
Same name in other branches
- 4.0.x modules/page_example/src/Controller/PageExampleController.php \Drupal\page_example\Controller\PageExampleController::arguments()
A more complex _controller callback that takes arguments.
This callback is mapped to the path 'examples/page-example/arguments/{first}/{second}'.
The arguments in brackets are passed to this callback from the page URL. The placeholder names "first" and "second" can have any value but should match the callback method variable names; i.e. $first and $second.
This function also demonstrates a more complex render array in the returned values. Instead of rendering the HTML with theme('item_list'), content is left un-rendered, and the theme function name is set using #theme. This content will now be rendered as late as possible, giving more parts of the system a chance to change it if necessary.
Consult Render Arrays documentation for details.
Parameters
string $first: A string to use, should be a number.
string $second: Another string to use, should be a number.
Throws
\Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException If the parameters are invalid.
1 string reference to 'PageExampleController::arguments'
- page_example.routing.yml in modules/
page_example/ page_example.routing.yml - modules/page_example/page_example.routing.yml
File
-
modules/
page_example/ src/ Controller/ PageExampleController.php, line 66
Class
- PageExampleController
- Controller routines for page example routes.
Namespace
Drupal\page_example\ControllerCode
public function arguments($first, $second) {
// Make sure you don't trust the URL to be safe! Always check for exploits.
if (!is_numeric($first) || !is_numeric($second)) {
// We will just show a standard "access denied" page in this case.
throw new AccessDeniedHttpException();
}
$list[] = $this->t("First number was @number.", [
'@number' => $first,
]);
$list[] = $this->t("Second number was @number.", [
'@number' => $second,
]);
$list[] = $this->t('The total was @number.', [
'@number' => $first + $second,
]);
$render_array['page_example_arguments'] = [
// The theme function to apply to the #items.
'#theme' => 'item_list',
// The list itself.
'#items' => $list,
'#title' => $this->t('Argument Information'),
];
return $render_array;
}