为什么我不能在Magento中显示消息块以在类别页面上显示?

时间:2012-03-15 19:00:16

标签: magento

在客户点击“添加到购物车”按钮到类别页面后,我试图让Magento重定向,我没有遇到任何问题(当然,经过一些搜索后)一个名为“return_url”的隐藏字段。这部分工作正常,项目被添加到购物车,用户被重定向回类别页面。在这里,无论我尝试过什么,我都无法获得消息块来显示成功(或错误)消息。这是我最近的代码尝试(在view.phtml中):

$messages=Mage::getSingleton("checkout/session")->getMessages();
echo $this->getLayout()->createBlock("core/messages")->setMessages($messages)->getGroupedHtml();

谢谢!

2 个答案:

答案 0 :(得分:3)

您是否尝试过更简单的addSuccess / addError / addNotice功能?

Mage::getSingleton('core/session')->addError(Mage::helper('core')->__('An error'));
Mage::getSingleton('core/session')->addSuccess(Mage::helper('core')->__('A success'));
Mage::getSingleton('core/session')->addNotice(Mage::helper('core')->__('A notice'));

答案 1 :(得分:0)

您可以将消息添加到不同的会话模型类型,例如“目录”,“客户”,“结帐”或简单的“核心”。

与:

Mage::getSingleton('catalog/session')
Mage::getSingleton('customer/session')
Mage::getSingleton('checkout/session')
Mage::getSingleton('core/session')

在您的情况下,客户会话消息未在类别控制器中初始化。看看

\Mage_Catalog_CategoryController::viewAction

函数的结尾应如下所示:

$this->_initLayoutMessages('catalog/session');
$this->_initLayoutMessages('checkout/session');
$this->renderLayout();

要显示“客户/会话”中的消息,此区域必须如下所示:

$this->_initLayoutMessages('catalog/session');
$this->_initLayoutMessages('customer/session');
$this->_initLayoutMessages('checkout/session');
$this->renderLayout();