将块附加到另一个

时间:2013-10-14 12:09:29

标签: magento

我按照这里的官方教程http://www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-3-magento-controller-dispatch 当我尝试将一个块附加到另一个块时,我遇到了一个问题。我使用以下代码(在教程中使用非常相似 - 2)并且它不起作用。 $block->toHtml()返回空字符串,但$block包含一个大数组。

class Custom_HelloWorld_IndexController extends Mage_Core_Controller_Front_Action {

    public function indexAction() {
        $this->loadLayout();
        $block = $this->getLayout()->createBlock('newsletter/subscribe');
        $this->getLayout()->getBlock('content')->append($block);
        $this->renderLayout();
    }

}

如果我使用XML文件来做同样的事情,一切都很顺利。

1 个答案:

答案 0 :(得分:1)

newsletter/subscribe块扩展了Mage_Core_Block_Template,但未在其构造函数中设置默认的* .phtml文件。请参阅http://svn.magentocommerce.com/source/branches/1.7/app/code/core/Mage/Newsletter/Block/Subscribe.php

因此,在渲染布局之前,您需要执行$block->setTemplate("newsletter/subscribe.phtml");之类的操作。