Magento - 控制器中的createBlock(),我可以在layout.xml中访问它吗?

时间:2012-10-25 16:50:11

标签: magento layout

我有一个索引控制器,其视图操作可执行以下操作:

echo $this->getLayout()
    ->createBlock('core/template','builder')
    ->setTemplate('pages/builder/view.phtml')
    ->setHeaderText($extra->getHeaderText())
    ->setFooterText($extra->getFooterText())
    ->setProducts($collection)
    ->toHtml();

基于此,我试图在builder.xml中执行布局更新(在模块的config.xml中设置)。但是,我不确定您是否可以以这种方式实例化目标块。根据上面的块创建,我能够执行以下操作:

<layout version="0.1.0">
    <builder_index_view>
        <!-- shouldn't this reference the createBlock() name argument? -->
        <reference name="builder">
            <block type="page/html_header" name="builder.header" as="builder.header" template="pages/builder/header.phtml"/>
        </reference>
    </builder_index_view>
</layout>

1 个答案:

答案 0 :(得分:2)

如果在调用loadlayout()之前实例化了块,是的。