我在模块中设置了一个控制器,为我的安装添加了一个订单导出标签:
在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页面,而管理面板的仪表板只是重新加载。
我真的不知道我的错误在哪里,我很高兴能找到正确的方向。
答案 0 :(得分: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>
Abc_Orderexport_Adminhtml_Index2Controller
所有这一切都假设你的文件夹结构是:
app/ code/ local/ Abc/ Orderexport/ controllers/ Adminhtml/ Index2Controller.php etc/ config.xml adminhtml.xml,确切地说,大/小写很重要
答案 1 :(得分:0)
您可以尝试以下代码,并确保您的模块类名称和文件夹结构必须是标准magento 扩展结构。 config.xml中
<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;