我正在基于this article创建简单的Magento模块 我的管理员新商品操作有问题。
<?php
class Namespace_Gallery_Adminhtml_GalleryController extends Mage_Adminhtml_Controller_Action
{
protected function _initAction()
{
$this->loadLayout()
->_setActiveMenu('namespace/gallery');
return $this;
}
public function indexAction()
{
$this->_initAction();
$this->_addContent($this->getLayout()->createBlock('gallery/adminhtml_gallery'));
$this->renderLayout();
}
public function editAction()
{
echo 'edit';
}
public function newAction()
{
$this->_forward('edit');
}
项目indexAction工作并显示我的项目,当我点击任何项目时,它会按预期返回“编辑”。不幸的是,点击“添加新项目”会给出404(网址很好)。
有什么想法吗?
答案 0 :(得分:0)
您需要添加adminhtml layout update xml:
<?xml version="1.0"?>
<layout>
<[module]_adminhtml_[controller]_index>
<reference name="content">
<block type="[module]/adminhtml_[frontname]" name="[module]_grid"/>
</reference>
</[module]_adminhtml_[controller]_index>
</layout>
当然需要在config.xml中设置
<adminhtml>
<layout>
<updates>
<[module]>
<file>[module].xml</file>
</[module]>
</updates>
</layout>
</adminhtml>
您可能需要在editAction()
中加载/渲染布局答案 1 :(得分:0)
根据您调用所请求的自定义操作的方式,您可能需要在config.xml中添加一些内容
假设这就是你所说的: HTTP(S)://yourdomain.com/index.php/gallery/admin_gallery/new
然后将以下内容添加到<admin><routers>
- node
<gallery>
<use>admin</use>
<args>
<module>Namespace_Gallery</module>
<frontName>gallery</gallery>
</args>
</gallery>