перенаправление symfony с 2 параметрами


Как я могу перенаправить на другое действие, передающее 2 или более параметров? этот код:

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

Приводит к URL:

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

Author: kipelovets, 2009-09-30

6 answers

Ну, это нормально, "перенаправлять" перенаправление на абсолютный URL. Вы можете сделать это:

$this->redirect($this->generateUrl('default', array('module' => 'input',
'action' => 'new', 'year' => $year, 'month' => $month)));
 53
Author: xarch, 2009-09-30 17:48:47

Вы также можете использовать перенаправление, указав имя маршрута и массив параметров:

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

(Протестировано на Symfony 1.4)

 4
Author: Guillermo Gutiérrez, 2011-11-20 18:30:19

Я думаю, что это не обычное поведение symfony. Вы определили некоторые правила маршрутизации?

Вы также пробовали это:

$this->redirect('module/action?'.http_build_query($paramsArray));
 3
Author: jochil, 2009-09-30 09:24:37

В поддерживаемых в настоящее время версиях Symfony (2.7+) это еще проще:

return $this->redirectToRoute('default', array('year' => $year, 'month' => $month));
 3
Author: forsberg, 2017-01-29 15:41:39

Странная вещь. Делает

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

Работать на вас?

 1
Author: develop7, 2009-09-30 12:40:48
$this->redirect('input/new/year/' . $year . '/month/' . $month);
 -3
Author: Mohammad, 2011-11-20 18:30:41