我無法在觀察者中創建Magento中的工作重定向。Magento從始終工作的觀察者重定向
據我所知,有很多事件獲得響應對象(在$observer
對象中)。 另一種方式是由偉大的阿蘭風暴這裏提到https://stackoverflow.com/a/4730200/1700048使用類似
Mage::app()->getResponse()->setRedirect(Mage::getUrl('checkout/cart'));
。
不幸的是這並沒有爲我工作,甚至當我添加sendResponse()
這樣的:
Mage::app()->getResponse()->setRedirect(Mage::getUrl('checkout/cart'))->sendResponse();
例如:
我想防止一些電子郵件地址,通訊訂閱。 因此我爲newsletter_subscriber_save_before
事件創建了一個觀察者。
在我的觀察者方法中,我檢查了一些情況,如果它們觸發,我想防止保存訂閱通訊。 我的計劃是添加這樣的錯誤:
Mage::getSingleton('checkout/session')->addError('Email is spam!');
,只是讓當前頁面重載(顯示錯誤消息)與重定向的上方(在本例中checkout/cart
只是看到它確實有效) 。
不幸的是,重定向不起作用。 爲什麼sendResponse
在這種情況下不發送響應?
感謝您的幫助:)
最接近solutiuon的方法似乎就像這裏討論:http://www.magentocommerce。com/boards/viewthread/15792 /#t325035 Mage :: app() - > getResponse() - > setRedirect($ url); Mage :: app() - > getResponse() - > sendResponse(); 退出; exit()對此起作用是必不可少的。不幸的是,這在某些情況下導致了包括回滾錯誤的一些錯誤。我不確定它是否足夠乾淨以成爲一般解決方案的基礎。 – Celldweller
對於Magento 2我們可以做什麼? –