diff --git a/cookbook/routing/extra_information.rst b/cookbook/routing/extra_information.rst index dbbe7706c46..f34c94e32cf 100644 --- a/cookbook/routing/extra_information.rst +++ b/cookbook/routing/extra_information.rst @@ -7,7 +7,7 @@ How to Pass Extra Information from a Route to a Controller Parameters inside the ``defaults`` collection don't necessarily have to match a placeholder in the route ``path``. In fact, you can use the ``defaults`` array to specify extra parameters that will then be accessible as -arguments to your controller: +arguments to your controller, and as attributes of the ``Request`` object: .. configuration-block:: @@ -52,12 +52,25 @@ arguments to your controller: return $collection; -Now, you can access this extra parameter in your controller:: +Now, you can access this extra parameter in your controller, as an argument to the controller method:: + use Symfony\Component\HttpFoundation\Request; + public function indexAction($page, $title) { // ... } +Alternately, the title could be accessed through the ``Request`` object:: + + use Symfony\Component\HttpFoundation\Request; + + public function indexAction(Request $request, $page) + { + // ... + $title = $request->attributes->get('title'); + // ... + } + As you can see, the ``$title`` variable was never defined inside the route path, -but you can still access its value from inside your controller. +but you can still access its value from inside your controller, through the method's argument, or from the ``Request`` object's ``attributes`` bag.