Question

Est-il possible de passer des paramètres via la redirection? J'ai essayé beaucoup d'options, mais rien ne semble fonctionner. Ma dernière approche est:

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

Ensuite, j'ai créé un itinéraire:

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

Mais tout ce que je reçois c'est users/helloworld/myId

Était-ce utile?

La solution

args fait partie des itinéraires et sera converti en URL en utilisant l'itinéraire très générique (pas celui que vous avez créé et ne avez pas besoin)

Pour obtenir un chaîne de requête, utilisez simplement le ? clé:

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

Le test pour cela: https://github.com/unionofrad/lithium/blob/master/tests/cases/net/http/routest.php#l374-405

Autres conseils

Au lieu de définir un itinéraire séparé pour passer les arguments, vous pouvez simplement faire ce qui suit. Disons que vous souhaitez passer 2 arguments: $ arg1 & $ arg2 au Bonjour le monde action de votre Utilisateurs manette:

return $this->redirect(array(
'Users::helloworld',
'args' => array(
        $arg1,
        $arg2
    )
));
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top