我正在开发我的第二个Magento模块,它应该检索一些数据并渲染包含它的块。这样的块将被其他页面使用。Magento - 块没有呈现
目前,我几乎已经安装了整个模块,但由于某种原因,当我调用控制器方法时,模块未呈现。我提供了一些调试信息,我可以看到该块的__construct()
方法调用正确,但模板似乎没有加载,返回的页面为空。
以下是适用于块的代码,其中我从另一个模块复制和修改:
class Company_CustomerData_Block_CustomerSummary extends Mage_Core_Block_Template {
const _TEMPLATE = 'customerdata/customersummary.phtml';
public function __construct() {
// This method is called correctly
parent::_construct();
$this->setTemplate(self::_TEMPLATE);
}
}
文件customersummary.phtml是在应用程序/设计/前端/碱/默认/模板/ customerdata,这应该是正确的地方(或者至少我认为是这样)。其内容如下:
It works!
只是一些纯文本。没有标签,没有代码,什么都没有。我不介意这是一个静态文本,它会填充数据一次完成。
在需要的情况下,这里的控制器(我删除其中的数据被检索到的部分,因为他们不有所作为)代码:
public function dashboardAction() {
// Customer Data to render in the block
$CustomerData = array(); // Data is retrieved elsewhere
$this->getResponse()->setBody(
$this->getLayout()->createBlock('customerdata/customersummary')
->toHtml()
);
}
什么可能我是做错了什么?恐怕我又犯了一个愚蠢的错误,但我真的看不到它。
最后两个问题:
- 如何传递到模板我在控制器检索数据?具体而言,变量
$CustomerData
。 - 模块渲染完成后,如何从页面内渲染其内容?该块应该返回一个带有一些东西的东西,我想在客户仪表板内部呈现它,就在已经存在的信息的下面。
在此先感谢您的帮助。
@Jim感谢您的编辑,我没有发现破损的格式。我不应该在4AM发布问题... :) – Diego 2012-07-25 11:11:09