Как я могу перенаправить на другое действие, передав 2 или более параметров? этот код:symfony redirect с 2 параметрами
$this->redirect('input/new?year=' . $year . '&month=' . $month);
приводит URL:
http://.../input?year=2009&month=9
Как я могу перенаправить на другое действие, передав 2 или более параметров? этот код:symfony redirect с 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. Вы определили некоторые правила маршрутизации?
Вы также попытался это:
$this->redirect('module/action?'.http_build_query($paramsArray));
нет, это не помогает – kipelovets
Странная вещь. Есть ли
$this->redirect('@default?module=input&action=new&year=' . $year . '&month=' . $month);
работу для вас?
да, это тоже работа. спасибо, но решение xarch более красивое =) – kipelovets
$this->redirect('input/new/year/' . $year . '/month/' . $month);
это подрывает внутреннюю система маршрутизации symfony – jochil
на самом деле это не так. Разумный механизм внутренней маршрутизации symfony - это именно то, почему это перенаправление работает! но спасибо за пониженное голосование;) – Mohammad
, когда вы это делаете, вам нужно изменить все ссылки/переадресации при настройке соответствующего правила маршрутизации – jochil
Вы также можете использовать переадресацию, указав имя маршрута и массив параметров:
$this->redirect('route_name', array('year' => $year, 'month' => $month));
(испытано на Symfony 1.4)
В настоящее время поддерживается Варианты Symfony (2.7+) it's even easier:
return $this->redirectToRoute('default', array('year' => $year, 'month' => $month));
, что помогло. кроме него генерирует URL-адрес, например «http: //.../input/new/year/2009/month/10» – kipelovets
Если у вас есть определенный маршрут, вы можете заменить его по умолчанию и изменить второй параметр с параметрами маршрута, если необходимо. – xarch
Если у вас есть определенный маршрут, вы можете фактически использовать '$ this-> redirectToRoute ('routeename', ['param1' => 'value', ['param2' => 'value'])' – chteuchteu