No meu módulo, após a execução do meu script, preciso redirecionar para uma página com uma string de consulta na URL.
Aqui está o que eu tenho:
$redirectUrl = 'http://magento.local/en_en/shop/index';
$redirectArgs = array('test' => '1');
$this->_redirect($redirectUrl, $redirectArgs);
Eu também tentei:
Mage::app()->getFrontController()->getResponse()->setRedirect($redirectUrl, $redirectArgs)->sendResponse();
Ambos os métodos geram um erro: ocorreu um erro ao processar sua solicitação
O que espero é ser redirecionado para http://magento.local/en_en/shop/index?test=1
Alguém sabe como eu posso conseguir isso?
Editar:
Como sugerido, tentei:
$redirectUrl = 'http://magento.local/en_en/shop/index?test=1';
Mage::app()->getResponse()->setRedirect($redirectUrl);
Sem erro, mas nada acontece. Eu não estou em um controlador.
Edição 2:
Acabei usando:
$redirectUrl = 'http://magento.local/en_en/shop/index?test=1';
Mage::app()->getResponse()->setRedirect($redirectUrl)->sendResponse();
Isso funciona como esperado! Obrigado.
redirect
ee-1.12.0.2
MrUpsidown
fonte
fonte
$this->_redirect($redirectUrl);
?_redirect
se você estiver em um controlador. Se você estiver em outro lugar:Mage::app()->getResponse()->setRedirect($redirectUrl);
->sendResponse()
no final fez o trabalho!sendResponse
A melhor maneira de fazer isso é assim.
fonte
Se você deseja redirecionar para outro URL com parâmetros de consulta, faça o seguinte:
Isso o redirecionará para: http: //magento.local/en_en/shop/index? Test = 1 & test = 2
fonte
Se você acabou aqui no google, está usando um controlador e deseja redirecionar para outro preservando os argumentos que você pode usar:
Onde
module
,controller
eaction
pode ser substituído por*
preservá-lo do valor. Outra ação no mesmo controlador:Mesmo nome de ação, controlador irmão:
E assim por diante...
fonte