将块作为另一个块的子元素添加到magento中的正确方法是什么?

时间:2016-10-30 21:43:44

标签: magento magento-1.9

我有两个名为“exe2”“example”的自定义magento块。 exe2块使用 getChildHtml 函数获取示例块的内容,但它只保留空字符串给我,只有exe2内容才能显示在屏幕上。

这是我的代码我的代码:

exe2 xml文件:

<layout version = "0.1.0">

<test_example_view>


    <block type = "exemplum_mod2/exe2" name = "exemplum.mod2.exe2"  template="exemplum/mod2/exe2.phtml">
        <reference name = "exemplum.mod2.exe2">
            <block type="exemplum/example" name="exemplum.example" template="exemplum/example1/example.phtml" />
        </reference>
    </block>


</test_example_view>

示例xml文件

<layout version="0.1.0">
<default>

    <block type="exemplum/example" name="exemplum.example" template="exemplum/example1/example.phtml" />        

</default>

以下是包含getChildHtml调用的exe2 phtml文件:

<h1> 2nd </h1>
<?php

    echo $this->getMessage();
    echo $this->getChildHtml("exemplum.mod2.exe2");

?>

hello

example.phtml文件:

<h1>Hello there</h1>

最后是加载块的控制器文件:

<?php



class exemplum_example1_ExampleController extends Mage_Core_Controller_Front_Action{


    public function viewAction(){

        $this->loadLayout();

        $block = $this->getLayout()->createBlock('exemplum_mod2/exe2');
        $block->setTemplate("exemplum/mod2/exe2.phtml");


        $this->getLayout()->getBlock('content')->append($block);

        $this->renderLayout();

    }



}

在xml文件中添加一个块作为另一个块的子块的正确方法是什么?我在google上找到的每个解决方案似乎都不适用于我的情况,所以我在这里做错了什么?

0 个答案:

没有答案