Magento:完整动作​​名称句柄不显示

时间:2013-06-17 18:52:27

标签: xml magento layout magento-1.7

我正在尝试通过页面上的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时,我得到一个空白页面。

如果我用......替换......也是如此。

为什么呢?我错过了什么?

感谢。

1 个答案:

答案 0 :(得分:1)

您的indexAction方法似乎缺少对loadLayoutrenderLayout的调用。

$this->loadLayout();
$this->renderLayout();

loadLayout方法解析XML并实例化块对象。

renderLayout方法调用根块上的toHtml方法。

此外,将var_dump(__METHOD__);放入控制器操作以确保它实际被调用(相对于空白页面,这可能意味着许多不同的事情)是有帮助的。