我想知道为什么这两个模板代码片段会产生不同的结果:
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()->getLayout()“被替换为"$this”。在原始的Magento模板上我发现..。"$this“版本...
发布于 2012-10-31 18:15:41
第二个示例不起作用,因为您的示例模块没有对Mage::app()->getLayout()的引用。所以你需要调用Mage::app()->getLayout()->getMessagesBlock()->getGroupedHtml().
发布于 2012-11-13 17:04:31
嗯..。我想这是因为我们之前有一个"Mage::getModel('core/layout')“,而不是”Mage::getSingleton(‘core/layout’)“……
像设计的那样工作...;-)
https://stackoverflow.com/questions/13154558
复制相似问题