Reputation: 1214
How can I redirect to another action passing 2 or more parameters?
This code:
$this->redirect('input/new?year=' . $year . '&month=' . $month);
Results in URL:
http://.../input?year=2009&month=9
Upvotes: 39
Views: 111066
Reputation: 1913
In the currently supported Symfony versions (2.7+) it's even easier (plus, you can optionally add also the status code at the end):
return $this->redirectToRoute(
'default',
array('year' => $year, 'month' => $month),
Response::HTTP_MOVED_PERMANENTLY // = 301
);
Upvotes: 11
Reputation: 17799
You can also use redirect, specifying the route name and the parameter array:
$this->redirect('route_name', array('year' => $year, 'month' => $month));
(Tested on Symfony 1.4)
Upvotes: 5
Reputation: 732
Well, that's normal, "redirect" redirect to an absolute URL. You can do that:
$this->redirect($this->generateUrl('default', array('module' => 'input',
'action' => 'new', 'year' => $year, 'month' => $month)));
Upvotes: 58
Reputation: 969
Strange thing. Does
$this->redirect('@default?module=input&action=new&year=' . $year . '&month=' . $month);
work for you?
Upvotes: 1
Reputation: 1074
I think this is no normal symfony behavior. Have you defined some routing rules?
Have you also tried this:
$this->redirect('module/action?'.http_build_query($paramsArray));
Upvotes: 3