Zend: Holen Sie sich die aktuelle url für den Einsatz in Controller
Ich diesen controller haben, die einfach nur die Sprache ändern, in einer Sitzung, so kann ich in der bootstrap.
Außer, dass ich ändern wollen, '$this->_redirect ( 'Bibliothek/Rezepturen/Liste');", um die URL der Seite, die Sie sind auf. Ich habe versucht, ein paar Funktionen und Sie nicht zu funktionieren scheint.
Ich bin ein Neuling Zend Nutzer, vielen Dank!
class Library_LanguageswitchController extends Zend_Controller_Action {
public function init() {
$this->_helper->layout->disableLayout ();
$this->_helper->viewRenderer->setNoRender ();
}
public function switchAction() {
$session = new Zend_Session_Namespace ( 'whatcould' );
$session->language = $this->_getParam ( 'lang' );
$this->_redirect ( 'library/recipes/list' );
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es keine integrierte Möglichkeit, dies zu tun, soweit ich weiß. Sie möchten die Umleitung zurück auf die referer, die möglicherweise oder möglicherweise nicht gespeichert werden, in
$_SERVER['HTTP_REFERER']
.Der beste Ansatz, den ich denken kann, ist das schreiben einer
Zend_Controller_Action_Helper
mit einer Signatur der Methode, wie dieseDann könnten Sie
Als alternative, könnten Sie eine benutzerdefinierte Umleitung Helfer, die erreichen können, die gleich in einem Rutsch.
http://framework.zend.com/manual/en/zend.controller.actionhelpers.html#zend.controller.actionhelper.redirector.basicusage erwähnt
$this->_redirector->redirectAndExit();
Ich denke, dass vielleicht, die Sie suchen, auf dieser aus dem falschen Winkel. Ein controller ausgelöst wird, nachdem das routing abgeschlossen ist. Von dem, was ich bin zu sehen, die Sie wirklich wollen, um die Sprache zu ändern und dann die route zum controller. Würde dies erreicht werden durch anpassen der front-controller und Tippen in einer der Veranstaltungen.
Eine weitere einfache Möglichkeit, um zu greifen/setzen der Referenz ist über das hinzufügen einer param Ihrem frontController in der Bootstrap-code:
und nehmen dann den referer von dem controller etwa so:
Vom Zend docs für Zend_Controller_Front:
Zend keine Funktion für diese. Aber einfache Weise speichern Sie die url in der Sitzung, und verwenden Sie es hier
Können Sie so etwas wie: