Magento自定义按钮操作结果为404

时间:2016-07-08 09:30:53

标签: php magento model-view-controller

我正在创建一个小模块,在Admin命令视图页面添加一个按钮。此按钮将触发自定义控制器操作,该操作将(除了其他内容)创建发票和货件。

我添加了按钮,我可以让它指向我的控制器动作(理论上),将当前订单ID添加为参数,但点击该按钮只会让我进入404页面。

我有这个我的config.xml:

<admin>
    <routers>
        <adminhtml>
            <args>
                <modules>
                    <id_acscourier before="Mage_Adminhtml">ID_AcsCourier_Adminhtml</id_acscourier>
                </modules>
            </args>
        </adminhtml>
    </routers>
</admin>

这是我的控制器的开始:

class ID_AcsCourier_IndexController extends Mage_Adminhtml_IndexController
{

    public function indexAction() {
        $this->loadLayout();
        $this->renderLayout();
    }

    public function voucherAction() {
        // more stuff here...
    }
}

我不确定config.xml代码,经过几个小时的阅读和搜索后,我找到了一个建议这个解决方案的示例。 该动作不应该产生任何类型的输出,但我想在结尾处显示一条消息(就像magento在保存之后产生的那些......)

2 个答案:

答案 0 :(得分:0)

你的控制器文件应该如下所示

class [namespace]_[module_name]_Adminhtml_[controller_name] extends Mage_Adminhtml_Controller_Action {
     public function indexAction() {
           // your stuff
     }
}

adminhtml.xml

<unique_tag>
    <title>Manage Controller</title>
    <sort_order>10</sort_order>
    <action>adminhtml/[module_name]/[action]</action>
</unique_tag>

答案 1 :(得分:0)

模块config.xml与控制器类之间存在矛盾。您的模块中有_Adminhtml,需要指向您的管理面板。但你的控制器出现在adminhtml之外。如果要创建自定义模块,请从

中删除_adminhtml
<modules>
    <id_acscourier before="Mage_Adminhtml">ID_AcsCourier</id_acscourier>
<modules>

在Adminhtml ...

中创建控制器

你很高兴去!