web-dev-qa-db-fra.com

redirection symfony avec 2 paramètres

comment puis-je rediriger vers une autre action en passant 2 paramètres ou plus? ce code:

$this->redirect('input/new?year=' . $year . '&month=' . $month);

résulte en URL:

http://.../input?year=2009&month=9

30
kipelovets

Eh bien, c'est normal, "rediriger" rediriger vers une URL absolue. Vous pouvez le faire:

$this->redirect($this->generateUrl('default', array('module' => 'input',
'action' => 'new', 'year' => $year, 'month' => $month)));
55
xarch

Dans les versions Symfony actuellement prises en charge (2.7+) c'est encore plus facile :

return $this->redirectToRoute('default', array('year' => $year, 'month' => $month));
6
forsberg

Vous pouvez également utiliser la redirection, en spécifiant le nom de l'itinéraire et le tableau de paramètres:

$this->redirect('route_name', array('year' => $year, 'month' => $month));

(Testé sur Symfony 1.4)

4

Je pense que ce n'est pas un comportement symfony normal. Avez-vous défini des règles de routage?

Avez-vous également essayé ceci:

$this->redirect('module/action?'.http_build_query($paramsArray));
3
jochil

Chose étrange. Est-ce que

$this->redirect('@default?module=input&action=new&year=' . $year . '&month=' . $month);

travailler pour vous?

1
Andrei Dziahel