¿cómo puedo redireccionar a otra acción pasando 2 o más parámetros? este código:symfony redirigir con 2 parámetros
$this->redirect('input/new?year=' . $year . '&month=' . $month);
resultados en la URL:
http://.../input?year=2009&month=9
¿cómo puedo redireccionar a otra acción pasando 2 o más parámetros? este código:symfony redirigir con 2 parámetros
$this->redirect('input/new?year=' . $year . '&month=' . $month);
resultados en la URL:
http://.../input?year=2009&month=9
Bueno, eso es normal, redirige a una URL absoluta. Se puede hacer que:
$this->redirect($this->generateUrl('default', array('module' => 'input',
'action' => 'new', 'year' => $year, 'month' => $month)));
creo que esto no es un comportamiento normal de Symfony. ¿Has definido algunas reglas de enrutamiento?
¿Usted también ha intentado esto:
$this->redirect('module/action?'.http_build_query($paramsArray));
no, eso no ayuda – kipelovets
cosa extraña. ¿Tiene
$this->redirect('@default?module=input&action=new&year=' . $year . '&month=' . $month);
¿le conviene?
sí, eso también funciona. gracias, pero la solución de xarch es más bonita =) – kipelovets
$this->redirect('input/new/year/' . $year . '/month/' . $month);
esto socava la interna sistema de enrutamiento de symfony – jochil
en realidad no es así. El motor de enrutamiento interno inteligente de Symfony es exactamente el motivo por el que funciona esta redirección. pero gracias por el voto negativo;) – Mohammad
cuando lo haces de esta manera tienes que cambiar todos los enlaces/redireccionamientos al ajustar la regla de enrutamiento correspondiente – jochil
También puede utilizar redirección, que especifica el nombre de la ruta y la matriz de parámetros:
$this->redirect('route_name', array('year' => $year, 'month' => $month));
(Probado en Symfony 1.4)
En soportado actualmente Versiones de Symfony (2.7+) it's even easier:
return $this->redirectToRoute('default', array('year' => $year, 'month' => $month));
que ayudó. a excepción de que genera una URL como "http: //.../input/new/year/2009/month/10" – kipelovets
Si tiene una ruta definida, puede reemplazar 'default' por su nombre, y cambiar el segundo parámetro con los parámetros de las rutas, si es necesario. – xarch
Si tiene una ruta definida, puede usar '$ this-> redirectToRoute ('routename', ['param1' => 'value', ['param2' => 'value'])' – chteuchteu