Pregunta

Es posible pasar parámetros a través de redirección?He intentado un montón de opciones, pero nada parece funcionar.Mi último enfoque es el siguiente:

return $this->redirect(array('Users::helloworld', 'args' => array('id' => 'myId')));

a continuación, he creado una ruta:

Router::connect('/Users/helloworld?id={:id}', array('controller' => 'Users', 'action' => 'helloworld'));

pero todo lo que veo es users/helloworld/myId

¿Fue útil?

Solución

args es parte de las rutas y se convertirá en una URL usando el genérico de la ruta (no la que usted ha creado y no requieren)

Para obtener una cadena de consulta, simplemente utilice el ? clave:

return $this->redirect(array(
    'Users::helloworld',
    '?' => array('id' => $myId)
));
// will use the route:
//    /{:controller}/{:action}/{:args}
// and generate
//    /users/helloworld?id=$myId

La prueba de que: https://github.com/UnionOfRAD/lithium/blob/master/tests/cases/net/http/RouteTest.php#L374-405

Otros consejos

En lugar de definir una ruta separada para pasar los argumentos, podría simplemente hacer lo siguiente. Digamos que desee pasar 2 argumentos: $ arg1 & $ arg2 a la acción showorld de su controlador :

return $this->redirect(array(
'Users::helloworld',
'args' => array(
        $arg1,
        $arg2
    )
));

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top