Magento Controller在管理员中转发

时间:2012-09-17 14:21:58

标签: magento magento-1.7 adminhtml

我正在基于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(网址很好)。

有什么想法吗?

2 个答案:

答案 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

中的config.xml中
<gallery>
    <use>admin</use>
    <args>
        <module>Namespace_Gallery</module>
        <frontName>gallery</gallery>
    </args>
</gallery>