In meinem Modul muss ich nach Ausführung meines Skripts eine Umleitung zu einer Seite mit einer Abfragezeichenfolge in der URL vornehmen.
Folgendes habe ich:
$redirectUrl = 'http://magento.local/en_en/shop/index';
$redirectArgs = array('test' => '1');
$this->_redirect($redirectUrl, $redirectArgs);
Ich habe auch versucht:
Mage::app()->getFrontController()->getResponse()->setRedirect($redirectUrl, $redirectArgs)->sendResponse();
Beide Methoden werfen einen Fehler auf: Bei der Verarbeitung Ihrer Anfrage ist ein Fehler aufgetreten
Was ich erwarte, ist umgeleitet zu http://magento.local/en_en/shop/index?test=1
Weiß jemand, wie ich das erreichen kann?
Bearbeiten:
Wie vorgeschlagen habe ich versucht:
$redirectUrl = 'http://magento.local/en_en/shop/index?test=1';
Mage::app()->getResponse()->setRedirect($redirectUrl);
Kein Fehler, aber nichts passiert. Ich bin nicht in einem Controller.
Bearbeiten 2:
Am Ende habe ich verwendet:
$redirectUrl = 'http://magento.local/en_en/shop/index?test=1';
Mage::app()->getResponse()->setRedirect($redirectUrl)->sendResponse();
Das funktioniert wie erwartet! Vielen Dank.
quelle
$this->_redirect($redirectUrl);
?_redirect
wenn Sie in einem Controller sind. Wenn Sie woanders sind:Mage::app()->getResponse()->setRedirect($redirectUrl);
->sendResponse()
am Ende hat den Job gemacht!sendResponse
Der bessere Weg, dies zu tun, ist so.
quelle
Wenn Sie zu einer anderen URL mit Abfrageparametern umleiten möchten, können Sie dies folgendermaßen tun:
Dadurch werden Sie weitergeleitet zu: http: //magento.local/en_en/shop/index? Test = 1 & test = 2
quelle
Wenn Sie von Google hierher gekommen sind, einen Controller verwenden und zu einem anderen umleiten möchten, behalten Sie die Argumente bei, die Sie verwenden können:
Wo
module
,controller
undaction
kann ersetzt werden , indem*
sie den Wert zu erhalten. Eine weitere Aktion in derselben Steuerung:Gleicher Aktionsname, Geschwister-Controller:
Und so weiter...
quelle