magento 如何以编程方式创建子块?

b4lqfgs4  于 2022-11-12  发布在  其他
关注(0)|答案(2)|浏览(213)

我有一个页面,其中包含一些以编程方式包含的模板块,如下所示:

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);

但它没有工作。我怎么能做到这一点?

ijxebb2r

ijxebb2r1#

我通过使用setChild方法解决了这个问题,如下所示:

$block->setChild('somealias',$childBlock);

所以我可以用

<?php echo $this->getChildHtml('somealias'); ?>
wwtsj6pe

wwtsj6pe2#

里卡多·马丁斯的答案
如果你需要它在一个块直接你可以做什么产品价格
Mage_Catalog_Block_Product

public function getPriceHtml($product)
{
    $this->setTemplate('catalog/product/price.phtml');
    $this->setProduct($product);
    return $this->toHtml();
}

相关问题