本文介绍了使用-> getChildHtml()时,引用中的嵌套块无法呈现的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的布局xml:

<catalog_category_default translate="label">
        <label>Catalog Category (Non-Anchor)</label>
        <reference name="content">
            <block type="core/template" name="page.brand" template="page/brand.phtml" />
            <block type="catalog/product_list" template="page/accessories.phtml">
                 <block type="catalog/navigation" name="catalog.leftnav" as="filter_menu" template="catalog/navigation/left.phtml"/> 
            </block>
        </reference>
</catalog_category_default>

在page.accessories.phtml中,在我调用的某些div块中:

And from within page.accessories.phtml, inside some div block i call:

<?php echo $this->getChildHtml('filter_menu') ?>

,但没有任何结果.这是为什么?

but nothing renders out. Why is that?

这是分层phtml文件中的代码:

this is code from the layered phtml file:

<div class="oh_shit"></div>
<?php if($this->canShowBlock()): ?>
<div class="block block-layered-nav">
    <div class="block-title">
        <strong><span><?php echo $this->__('Shop By') ?></span></strong>
    </div>
    <div class="block-content">
        <?php echo $this->getStateHtml() ?>
        <?php if ($this->getLayer()->getState()->getFilters()): ?>
            <div class="actions"><a href="<?php echo $this->getClearUrl() ?>"><?php echo $this->__('Clear All') ?></a></div>
        <?php endif; ?>
        <?php if($this->canShowOptions()): ?>
            <p class="block-subtitle"><?php echo $this->__('Shopping Options') ?></p>
            <dl id="narrow-by-list">
                <?php $_filters = $this->getFilters() ?>
                <?php foreach ($_filters as $_filter): ?>
                <?php if($_filter->getItemsCount()): ?>
                    <dt><?php echo $this->__($_filter->getName()) ?></dt>
                    <dd><?php echo $_filter->getHtml() ?></dd>
                <?php endif; ?>
                <?php endforeach; ?>
            </dl>
            <script type="text/javascript">decorateDataList('narrow-by-list')</script>
        <?php endif; ?>
    </div>
</div>
<?php endif; ?>

推荐答案

好.我得到了它.我不小心删除了type ="product_list"块上的name属性.当我重新添加名称="product_list"时,它起作用了.

ok. i got it. i accidentally deleted the name attribute on the block with type="product_list". when i re-added the name="product_list" it worked.

这篇关于使用-&gt; getChildHtml()时,引用中的嵌套块无法呈现的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-10 02:27