我正在尝试通过页面上的Mage_Core_Block_Text块添加字符串。 这是我的文件:
以下是Package Layout XML Update文件local.xml(在将所有其他句柄应用于Package Layout XML之后调用last):
/var/www/magpractice/app/design/frontend/practice/default/layout/local.xml
<?xml version="1.0"?>
<layout version="0.1.0">
<helloworld_index_index>
<reference name="content">
<block type="core/text" name="our_message">
<action method="setText"><text>Hello Mars</text></action>
</block>
</reference>
</helloworld_index_index>
</layout>
以下是派生控制器:
/var/www/magpractice/app/code/local/Alanstormdotcom/Helloworld/controllers/IndexController.php
class Alanstormdotcom_Helloworld_IndexController extends Mage_Core_Controller_Front_Action {
public function indexAction() {
}
}
这是我模块中的config.xml:
/var/www/magpractice/app/code/local/Alanstormdotcom/Helloworld/etc/config.xml
<config>
<modules>
<Alanstormdotcom_Helloworld>
<version>0.1.0</version>
</Alanstormdotcom_Helloworld>
</modules>
<global>
<blocks>
<helloworld>
<class>Alanstormdotcom_Helloworld_Block</class>
</helloworld>
</blocks>
</global>
<frontend>
<routers>
<helloworld>
<use>standard</use>
<args>
<module>Alanstormdotcom_Helloworld</module>
<frontName>helloworld</frontName>
</args>
</helloworld>
</routers>
</frontend>
</config>
就我收集的内容而言,无需为此示例指定Block目录下的特殊块。
当我去http:// localhost / magpractice / helloworld / index / index时,我得到一个空白页面。
如果我用......替换......也是如此。
为什么呢?我错过了什么?
感谢。
答案 0 :(得分:1)
您的indexAction
方法似乎缺少对loadLayout
和renderLayout
的调用。
$this->loadLayout();
$this->renderLayout();
loadLayout
方法解析XML并实例化块对象。
renderLayout
方法调用根块上的toHtml
方法。
此外,将var_dump(__METHOD__);
放入控制器操作以确保它实际被调用(相对于空白页面,这可能意味着许多不同的事情)是有帮助的。