我发现在尝试使用 unsetChild 方法,有时我必须将“名称”属性和其他属性用作'。看来,如果正常添加一个块,则使用“ AS”,但是如果使用该块,则使用该块 append 方法,您可能必须使用“名称”。这个假设正确吗?

这背后的原因是什么,是否有一种标准方法来了解您应该使用的属性?

有帮助吗?

解决方案

块总是可以由 name. 。别名(as)用于简化块的长名,而唯一的范围与范围有所不同。 Name 在页面中必须是唯一的, alias 在父块中。

其他提示

当您使用时 作为, ,你可以打电话 $ this-> getChildHtml(“ as_value”) 在PHTML模板上。

姓名 必须是唯一的,可以用于 <参考> 块, <删除>, , ETC。

例如(catalog.xml):

<block type="catalog/product_view" name="product.info" template="catalog/product/view.phtml">
    <block type="catalog/product_view_media" name="product.info.media" as="media" template="catalog/product/view/media.phtml"/>
</block>

如果您打开目录/product/view.phtml,您会看到:

<div class="product-img-box">
    <?php echo $this->getChildHtml('media') ?>
</div>

你看? AS =“媒体”,然后$ this-> getChildHtml('Media')...

没有人回答有关 unsetChild 然而。与 孩子们 一个街区 总是 请参阅别名的儿童块,这仅是父母所知,与名称不同,而不是全球唯一的。

但是,如果创建块而没有定义别名,则别名将默认为名称。

因此,简而言之,如果子块具有明确的别名,则必须使用别名。如果没有,请使用该名称。

别名由 as="..." 如果块是通过XML作为子块创建的,或者通过操作参数(如果它们被移动或动态地添加) append(), insert() 或者 setChild().

许可以下: CC-BY-SA归因
scroll top