我正在尝试将updateinfo块添加到客户页面。
我将此代码放在customer.xml
布局
<block type="core/text_list" name="updateinfo" as="updateinfo"/>
<reference name="updateinfo">
<block type="core/template" name="updateinfoBlock" template="customer/update_info.phtml" />
</reference>
并将update_info.phtml
添加到客户文件夹中。
还补充说
<?php echo $this->getChildHtml('updateinfo') ?>
到客户页面
但我还没有得到任何东西。卡住。
答案 0 :(得分:1)
尝试以下代码
<block type="core/text_list" name="updateinfo" as="updateinfo">
<block type="core/template" name="updateinfoBlock" template="customer/update_info.phtml" />
</block>
到达这个区块你可以得到这样的
<?php echo $this->getChildHtml('updateinfo') ?>
答案 1 :(得分:0)
尝试:
getChildHtml('updateinfoBlock') ?>
而不是:
getChildHtml('updateinfo') ?>
答案 2 :(得分:0)
如果您想使用getChildHtml()
,则需要设置块的as
属性以及name
属性。 Name属性通常用于在布局文件本身中引用。如果需要通过模板文件调用块,则使用as
属性中指定的值。所以你需要像这样的块定义
<block type="core/template" name="updateinfoBlock" as="update.info.block" template="customer/update_info.phtml" />
您需要将此块称为
<?php $this->getChildHtml('update.info.block'); ?>
但是,core/template
块的父块的类型为core/text_list
。该类型块内的子项将自动呈现。意味着您不需要通过getChildHtml()
方法呼叫这些孩子。一些示例包括left
,right
,content
块。其中的块将自动呈现。
因此,请将您的core/template
块直接放在布局中的任意位置,然后按照上面的说明调用它。除非必要,否则你不需要像往常一样把它放在另一个区块中。