Magento从观察者重定向

Magento从观察者重定向,magento,Magento,我很难在Magento中从一个观察者创建一个工作重定向。除此之外,我需要理解为什么像我们在控制器中所做的异常在观察者中不工作 在控制器中执行的典型异常如下所示(adminhtml控制器) 在博客的某个地方,我读到了下面的方法来重定向observer Mage::getSingleton('core/session')->addError('Exception Message.'); Mage::app()->getFrontController()->getResponse()

我很难在Magento中从一个观察者创建一个工作重定向。除此之外,我需要理解为什么像我们在控制器中所做的异常在观察者中不工作

在控制器中执行的典型异常如下所示(adminhtml控制器)

在博客的某个地方,我读到了下面的方法来重定向observer

Mage::getSingleton('core/session')->addError('Exception Message.');
Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('checkout/cart'));
Mage::app()->getResponse()->sendResponse();
exit;
我不理解在使用观察者和控制器时重定向的基本区别

为什么控制器重定向在observer中使用时不起作用

Mage::getSingleton('core/session')->addError('Exception Message.');
Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('checkout/cart'));
Mage::app()->getResponse()->sendResponse();
exit;
请帮我解释一下


提前非常感谢。

请参阅下面的链接,我还发布了代码 这可能对你有帮助

资料来源:

在Magento控制器中重定向 在Zend Framework控制器中,要输出html以外的内容,您需要禁用ViewHelper默认值以及一些其他神奇的ZF典型编织

在Magento中,当执行控制器重定向时,同样的情况也适用

我注意到在PHP5.2上,重定向似乎被忽略了,而我的Macports 5.3设置却起作用。结果发现我错过了一个技巧,因此在Magento中正确的重定向如下所示:

MyPackage/MyModule/controllers/MyController.php
中:

$this->_redirectUrl($this->getUrl('http://www.someurl.com/someresource'));  
$this->setFlag('', self::FLAG_NO_DISPATCH, true);  
return $this;

如果没有setFlag调用,重定向将被忽略。return调用停止任何进一步的代码执行,并看到您的重定向得到执行。

我认为这就是您要寻找的:$observer->getRequest()->setParam('return_url',');引用URL中的上述代码不起作用。关于:$this->getResponse()->setRedirect($returnUrl);(而不是getFrontController())^调用未定义的方法MongCars\u Checkout\u Model\u Observer::getResponse()