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

为什么我不能在分类页面上显示Magento中的消息块?,magento,Magento,我试图让Magento在客户单击“添加到购物车”按钮后重定向到分类页面,我使用了一个名为“return_url”的隐藏字段,这样做没有问题(当然,在搜索了一点之后)。这一部分工作得很好,项目被添加到购物车中,用户被重定向回类别页面。在这里,无论我尝试了什么,我都无法获得消息块来显示成功(或错误)消息。以下是我最近的代码尝试(在view.phtml中): 谢谢 您是否尝试过更简单的addSuccess/addError/addNotice函数 Mage::getSingleton('core/se

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


谢谢

您是否尝试过更简单的
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'));

您可以将消息添加到不同的会话模型类型,如“catalog”、“customer”、“checkout”或简单的“core”

同:

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();
要显示来自“客户/会话”的消息,此区域必须如下所示:

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

是和否。如果我在那里设置hem,我可以在view.phtml文件中检索它们。但是,我正在尝试检索CartController文件中设置的那些,这些文件通常在您不重定向url时显示。嗯,如果不亲自测试,我会想象这些消息会在重定向时被删除,但我可能错了。实际上……只是在它上使用了print\r,我得到了message对象。问题似乎在于显示块。顺便问一下,您试图在控制器、块类或phtml文件本身中的何处创建该块?在视图phtml文件本身中。这适用于客户/会话您找到解决方案了吗?我也有同样的问题。我将消息放在客户/会话中,但它们不会显示在类别页面中。它们只是累积,当我访问另一个页面(比如客户帐户页面)时会打印出来。