$ this-> getChildHtml()返回空字符串

时间:2016-09-21 15:29:43

标签: php magento

我尝试使用divlist.phtml的{​​{1}}文件中插入app/design/frontend/[custom]/[theme]/template/catalog/product

执行$this->getChildHtml()时,我得到<?php var_dump( $this->getChildHtml('odoo') )?>

我在string(0) ""创建了一个模块并创建了app/code/local/[Company]/[Module]文件:

config.xml

然后,在<?xml version="1.0" encoding="UTF-8"?> <config> <modules> <Company_Module> <version>1.0.0</version> </Company_Module> </modules> <frontend> <rwd> <company> <layout> <odoo> <file>odoo.xml</file> </odoo> </layout> </company> </rwd> </frontend> </config> 内:

app/design/frontend/[custom]/[theme]/layout/odoo

<?xml version="1.0"?> <layout version="0.1.0"> <reference name="content"> <block type="core/template" name="odoo" template="catalog/product/odoo.phtml" as="odoo" /> </reference> </layout> 的代码:

odoo.phtml

内部<div>Hello world</div>

list.phtml

我已清除缓存并手动删除<?php var_dump( $this->getChildHtml('odoo') )?> 内容但我认为我做错了。我对Magento没什么经验,只是编辑前端的mostry,所以我在这里有点迷失。

3 个答案:

答案 0 :(得分:0)

尝试使用您可以看到的html包装var_dump()。然后使用浏览器检查元素。内容可能在里面。如果你var_dump() html。您将看不到html的字符串表示形式。 html只是您正在查看的页面的一部分。

试试这个。

<div style="background-color: blue; height:30px;"/>
    <?php var_dump( $this ) ?>
<div style="background-color: blue; height:30px;"/>

如果右键单击并检查元素并浏览调试器中的html,您将找到$this的内容。然后,您应该能够确定您要查找的标签是否在内部。

答案 1 :(得分:0)

你可以尝试下面我希望它为你工作。

 <?xml version="1.0"?>

    <layout version="0.1.0">
    <catalog_product_view translate="label">
             <reference name="product.info">
                    <block type="core/template" name="odoo" template="catalog/product/odoo.phtml" as="odoo" />
            </reference>
    </catalog_product_view>
</layout>

此外,如果仍然显示为空,则尝试将块更改为从核心/模板到块名称的类型。

答案 2 :(得分:0)

解决。

<block type="core/template" name="odoo" template="catalog/product/odoo.phtml" as="odoo" />添加到page.xml布局。