как я могу перенаправить на другое действие, передающее 2 или более параметров? этот код:
$this->redirect('input/new?year=' . $year . '&month=' . $month);
приводит к URL:
http://.../input?year=2009&month=9
как я могу перенаправить на другое действие, передающее 2 или более параметров? этот код:
$this->redirect('input/new?year=' . $year . '&month=' . $month);
приводит к URL:
http://.../input?year=2009&month=9
Что ж, это нормально, «перенаправление» перенаправляет на абсолютный URL-адрес. Вы можете сделать это:
$this->redirect($this->generateUrl('default', array('module' => 'input',
'action' => 'new', 'year' => $year, 'month' => $month)));
В текущих поддерживаемых версиях Symfony (2.7+) это еще проще (плюс, вы можете дополнительно добавить также код состояния в конце):
return $this->redirectToRoute(
'default',
array('year' => $year, 'month' => $month),
Response::HTTP_MOVED_PERMANENTLY // = 301
);
Вы также можете использовать перенаправление, указав имя маршрута и массив параметров:
$this->redirect('route_name', array('year' => $year, 'month' => $month));
(Проверено на Symfony 1.4)
Я думаю, что это не нормальное поведение Symfony. Вы определили некоторые правила маршрутизации?
Вы также пробовали это:
$this->redirect('module/action?'.http_build_query($paramsArray));
Странная вещь. Делает
$this->redirect('@default?module=input&action=new&year=' . $year . '&month=' . $month);
работать на вас?
$this->redirectToRoute('routename', ['param1' => 'value', ['param2' => 'value'])
13.07.2015