magento消息块消息

时间:2012-10-31 09:14:38

标签: magento

我想了解为什么这两个模板代码段会产生不同的结果:

1

<?php Mage::getSingleton('localsample/session')->addError('Test'); ?>
<div id="messages_localsample_sample"><?php echo Mage::app()->getLayout()->getMessagesBlock()->getGroupedHtml() ?></div>

显示消息'Test'

2:

<?php Mage::getSingleton('localsample/session')->addError('Test'); ?>
<div id="messages_localsample_sample"><?php echo $this->getMessagesBlock()->getGroupedHtml() ?></div>

不显示任何内容,仅在页面源中生成此内容:

<div id="messages_localsample_sample"></div>

(没有特定的getMessageBlock或getGroupedHtml编码)

两个片段之间的唯一区别是:“Mage :: app() - &gt; getLayout()”被“$ this”取代。在最初的Magento模板上,我发现......“$ this”版本......

2 个答案:

答案 0 :(得分:0)

第二个示例无效,因为您的示例模块没有对Mage :: app() - &gt; getLayout()的引用。 所以你需要调用Mage :: app() - &gt; getLayout() - &gt; getMessagesBlock() - &gt; getGroupedHtml()。

答案 1 :(得分:0)

嗯...我认为这是因为我们之前有一个“Mage :: getModel('core / layout')”而不是“Mage :: getSingleton('core / layout')”....
按设计工作......; - )