Frage

Ist es möglich, Parameter per Umleitung zu übergeben?Ich habe viele Optionen ausprobiert, aber nichts scheint zu funktionieren.Mein neuester Ansatz ist:

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

dann habe ich eine Route erstellt:

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

aber alles was ich bekomme ist users/helloworld/myId

War es hilfreich?

Lösung

args ist Teil der Routen und wird unter Verwendung der sehr generischen Route (nicht der von Ihnen erstellten und nicht benötigten) in eine URL konvertiert

Um eine zu bekommen Abfragezeichenfolge, verwenden Sie einfach die ? Schlüssel:

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

Der Test dafür: https://github.com/UnionOfRAD/lithium/blob/master/tests/cases/net/http/RouteTest.php#L374-405

Andere Tipps

Anstatt eine separate Route zum Übergeben von Argumenten zu definieren, können Sie einfach Folgendes tun.Nehmen wir an, Sie möchten 2 Argumente übergeben: $arg1 & $arg2 zu den helloworld aktion Ihrer Internetnutzer Controller:

return $this->redirect(array(
'Users::helloworld',
'args' => array(
        $arg1,
        $arg2
    )
));
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top