Templates Magento中getChildHtml()和getChildHtml()之间的差异
我想知道这两个函数之间的区别。我理解getChildHtml()的行为。如果不传递任何参数,它将返回块或所有块的html。 我看得出来Templates Magento中getChildHtml()和getChildHtml()之间的差异,templates,magento,Templates,Magento,我想知道这两个函数之间的区别。我理解getChildHtml()的行为。如果不传递任何参数,它将返回块或所有块的html。 我看得出来 getChildHtml($name, $useCache, $sorted) getChildChildHtml($name, $childName,$useCache, $sorted) 乍一看,我使用了一个$useCache参数来使用cache。假设您在根块的phtml模板文件中,您有一个简化的块结构,如下所示 root left
getChildHtml($name, $useCache, $sorted)
getChildChildHtml($name, $childName,$useCache, $sorted)
乍一看,我使用了一个$useCache参数来使用cache。假设您在根块的phtml模板文件中,您有一个简化的块结构,如下所示
root
left
promo_top
navigation
promo_bottom
center
right
$left = $this->getChildBlock('left')
echo $left->getChildHtml('promo_top')
从根块的模板文件中,要打印左块,可以使用getChildHtml
echo $this->getChildHtml('left');
但是,如果出于某种原因,您希望在根模板中打印促销顶部块,则必须执行以下操作
root
left
promo_top
navigation
promo_bottom
center
right
$left = $this->getChildBlock('left')
echo $left->getChildHtml('promo_top')
getchildhtml
方法允许您在一个简单的方法调用中完成这类事情。同样,从根模板
echo $this->getChildChildHtml('left','promo_top');
因此,语义是
getChildHtml
#File: app/code/core/Mage/Core/Block/Abstract.php
public function getChildChildHtml($name, $childName = '', $useCache = true, $sorted = false)
{
if (empty($name)) {
return '';
}
$child = $this->getChild($name);
if (!$child) {
return '';
}
return $child->getChildHtml($childName, $useCache, $sorted);
}
真棒的解释。谢谢你,艾伦。