我有一个页面,其中包含一些模块块,如下所示:
public function indexAction() {
$this->loadLayout();
$block = $this->getLayout()
->createBlock('core/template')
->setTemplate('somefolder/sometemplate.phtml');
$this->getLayout()->getBlock('content')->append($block);
$this->renderLayout();
}
我想在 sometemplate.phtml , $ this-> getChildHtml('somechild')内插入另一个区块。
我试过
$box = $this->getLayout()
->createBlock('page/html')
->setTemplate('somefolder/somechild.phtml');
$block->append($box);
但没有奏效。 我该怎么办?
答案 0 :(得分:21)
我使用 setChild 方法解决了这个问题,如下所示:
$block->setChild('somealias',$childBlock);
所以我可以使用
<?php echo $this->getChildHtml('somealias'); ?>
答案 1 :(得分:0)
加上Ricardo Martins的答案 如果您需要直接在块中,您可以做什么产品价格
Mage_Catalog_Block_Product
:
public function getPriceHtml($product)
{
$this->setTemplate('catalog/product/price.phtml');
$this->setProduct($product);
return $this->toHtml();
}