这是我的控制器
<?php
class Desbest_Brands_Adminhtml_BrandController extends Mage_Adminhtml_Controller_action {
public function indexAction() {
//echo "showing 123 works!";
$this->loadLayout(); $this->renderLayout();
}
这是我的布局
<?xml version="1.0"?>
<layout version="1.0.0">
<brands_adminhtml_brand_index>
<reference name="content">
<block type="brands/adminhtml_brand" name="brand" />
<block type="newsletter/subscribe" name="left.newsletter" template="newsletter/subscribe.phtml"/>
</reference>
</brands_adminhtml_brand_index>
</layout>
然而,当我在管理员中显示视图时,没有任何内容加载,甚至不是电子邮件订阅表单。
答案 0 :(得分:14)
如果您的操作被正确调用(显示回显123),除缓存问题外,您的句柄可能有问题。
在您的操作中,尝试将此代码放在$this->loadLayout()
:
var_dump(Mage::getSingleton('core/layout')->getUpdate()->getHandles());
die();
它将显示为该请求加载的所有句柄。
句柄是从fullActionName生成的,简单来说,我们可以说它生成为:
route + controller + action
看看你的config.xml。
如果您的config.xml如下:
<admin>
<routers>
<brands>
<use>admin</use>
<args>
<module>Desbest_Brands</module>
<frontName>brands</frontName>
</args>
</brands>
</routers>
</admin>
对于您的操作,它将生成句柄:<brands_adminhtml_brand_index>
如果您的config.xml如下:
<admin>
<routers>
<brandsadmin>
<use>admin</use>
<args>
<module>Desbest_Brands</module>
<frontName>brands</frontName>
</args>
</brandsadmin>
</routers>
</admin>
对于您的操作,它将生成句柄:<brandsadmin_adminhtml_brand_index>
更新
不要忘记在config.xml中定义管理布局,例如:
<adminhtml>
<layout>
<updates>
<brandsadmin>
<file>yourlayoutname.xml</file>
</brandsadmin>
</updates>
</layout>
</adminhtml>
将它放在app / design / adminhtml / default / [default / youradmintheme] /layout/yourlayoutname.xml
下