找不到magento控制器

时间:2016-02-15 00:58:11

标签: magento controller adminhtml

我在模块中设置了一个控制器,为我的安装添加了一个订单导出标签:

在config.xml中:

    <admin>
        <routers>
            <adminhtml>
                <args>
                    <modules>
                        <orderexport>abc_Orderexport_index2</orderexport>
                    </modules>
                </args>
            </adminhtml>
        </routers>
        <layout>
            <updates>
                <orderexport>
                    <file>orderexport.xml</file>
                </orderexport>
            </updates>
        </layout>
    </admin>

在adminhtml.xml中:

<?xml version="1.0"?>
<config>
    <menu>
        <sales>
            <children>
                <orderexport>
                    <title>Order Export</title>
                    <sort_order>20</sort_order>
                    <action>adminhtml/index2</action>
                </orderexport>
            </children>
        </sales>
    </menu>
    <acl>
        <resources>
            <admin>
                <children>
                    <sales>
                        <children>
                            <orderexport>
                                <title>Order Export</title>
                                <sort_order>20</sort_order>
                            </orderexport>
                        </children>
                    </sales>
                </children>
            </admin>
        </resources>
    </acl>
</config>

并在controllers / Adminhtml / Index2Controller.php文件中

class abc_Orderexport_Adminhtml_Index2Controller extends Mage_Adminhtml_Controller_Action
{

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

}

然而,完成所有这些后,每当我点击按钮&#34;订单导出&#34;它将我重定向到404页面。这意味着Magento找不到控制器,但idk为什么。

当我将控制器从index2重命名为index(Index2Controller.php到IndexController.php)时,我没有被重定向到404页面,而管理面板的仪表板只是重新加载。

我真的不知道我的错误在哪里,我很高兴能找到正确的方向。

2 个答案:

答案 0 :(得分:1)

以下是您必须解决的问题:

  1. config.xml中:您必须说您的模块应该在adminhtml区域中使用,并且您必须尊重CamelCase,以下是它应该是这样的:

    <admin>
        <routers>
            <adminhtml>
                <args>
                    <modules>
                        <Abc_Orderexport after="Mage_Adminhtml">Abc_Orderexport_Adminhtml</Abc_Orderexport>
                    </modules>
                </args>
            </adminhtml>
        </routers>
    </admin>
    
  2. 在您的控制器中,您必须再次尊重CamelCase,即类名为Abc_Orderexport_Adminhtml_Index2Controller
  3. 所有这一切都假设你的文件夹结构是:

    app/
      code/
         local/
            Abc/
              Orderexport/
                   controllers/
                         Adminhtml/
                              Index2Controller.php
                   etc/
                     config.xml
                     adminhtml.xml
    
    ,确切地说,大/小写很重要

答案 1 :(得分:0)

您可以尝试以下代码,并确保您的模块类名称和文件夹结构必须是标准magento 扩展结构。 config.xml中

&#13;
&#13;
 <admin>
        <routers>
		<orderexport>
		   	<use>admin</use>
		        <args>
		            <modules>
		                <orderexport>Abc_Orderexport_Index2</orderexport>
				<frontName>orderexport</frontName>
		            </modules>
		        </args>
		<orderexport>
        </routers>
        <layout>
            <updates>
                <orderexport>
                    <file>orderexport.xml</file>
                </orderexport>
            </updates>
        </layout>
    </admin>
&#13;
&#13;
&#13;