W moim module po wykonaniu skryptu muszę dokonać przekierowania na stronę z ciągiem zapytania w adresie URL.
Oto co mam:
$redirectUrl = 'http://magento.local/en_en/shop/index';
$redirectArgs = array('test' => '1');
$this->_redirect($redirectUrl, $redirectArgs);
Próbowałem także:
Mage::app()->getFrontController()->getResponse()->setRedirect($redirectUrl, $redirectArgs)->sendResponse();
Obie metody zgłaszają błąd: Wystąpił błąd podczas przetwarzania żądania
Oczekuję, że nastąpi przekierowanie http://magento.local/en_en/shop/index?test=1
Czy ktoś wie, jak to osiągnąć?
Edytować:
Zgodnie z sugestią próbowałem:
$redirectUrl = 'http://magento.local/en_en/shop/index?test=1';
Mage::app()->getResponse()->setRedirect($redirectUrl);
Nie ma błędu, ale nic się nie dzieje. Nie jestem kontrolerem.
Edycja 2:
Skończyło się na tym, że:
$redirectUrl = 'http://magento.local/en_en/shop/index?test=1';
Mage::app()->getResponse()->setRedirect($redirectUrl)->sendResponse();
Działa to zgodnie z oczekiwaniami! Dziękuję Ci.
redirect
ee-1.12.0.2
MrUpsidown
źródło
źródło
$this->_redirect($redirectUrl);
?_redirect
jeśli jesteś kontrolerem. Jeśli jesteś gdzie indziej:Mage::app()->getResponse()->setRedirect($redirectUrl);
->sendResponse()
na końcu wykonało zadanie!sendResponse
Lepszym sposobem na to jest to.
źródło
Jeśli chcesz przekierować na inny adres URL z parametrami zapytania, możesz to zrobić w następujący sposób:
Spowoduje to przekierowanie do: http: //magento.local/en_en/shop/index? Test = 1 & test = 2
źródło
Jeśli skończyłeś tutaj z Google, używasz kontrolera i chcesz przekierować do innego, zachowując argumenty, których możesz użyć:
Gdzie
module
,controller
iaction
mogą być zastąpione*
, aby zachować jego wartość. Kolejna akcja w tym samym kontrolerze:Ta sama nazwa akcji, kontroler rodzeństwa:
I tak dalej...
źródło