Magento的重定向从观察(Magento Redirect from Observer)

2019-10-18 03:02发布

我无法创建工作从observer.Apart在Magento重定向从我需要理解为什么例外,就像我们在控制器做观察员不起作用。

在控制器完成的典型的例外是像下面(adminhtml控制器)

$message = $this->__('Exception Message.');
Mage::getSingleton('adminhtml/session')->addError($message);
$this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
return;

在某处的博客我也读到了下面的方法从观察者重定向。

Mage::getSingleton('core/session')->addError('Exception Message.');
Mage::app()->getFrontController()->getResponse()->setRedirect(Mage::getUrl('checkout/cart'));
Mage::app()->getResponse()->sendResponse();
exit;

有观察者和控制器做的时候我不懂得基本的重定向差异。

为什么在观测时控制器重定向不起作用。

请帮我解释。

非常感谢提前。

Answer 1:

见下面的链接,我也已经发布代码,它可以帮助你。

来源: http://aaronbonner.io/post/418012530/redirects-in-magento-controllers

重定向在Magento控制器在Zend框架控制器,以HTML以外的东西输出你将要与其他一些神奇的ZF通常沿着编织禁用视图助手默认值。

在Magento的,同样的事情做一个控制器重定向时适用。

我注意到在PHP 5.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电话,您重定向将被忽略。 返回调用停止任何进一步的执行代码,看到您的重定向得到付诸行动。



文章来源: Magento Redirect from Observer
标签: magento