How to Forward Requests to another Controller
Warning: You are browsing the documentation for Symfony 3.x, which is no longer maintained.
Read the updated version of this page for Symfony 7.1 (the current stable version).
Though not very common, you can also forward to another controller internally
with the forward()
method. Instead of redirecting the user's browser, this makes an "internal"
sub-request and calls the defined controller. The forward()
method returns
the Response object that is returned
from that controller:
1 2 3 4 5 6 7 8 9 10 11
public function indexAction($name)
{
$response = $this->forward('AppBundle:Something:fancy', [
'name' => $name,
'color' => 'green',
]);
// ... further modify the response or return it directly
return $response;
}
The array passed to the method becomes the arguments for the resulting controller. The target controller method might look something like this:
1 2 3 4
public function fancyAction($name, $color)
{
// ... create and return a Response object
}
Just like when creating a controller for a route, the order of the arguments
of fancyAction()
doesn't matter: the matching is done by name.