Magento管理员控制器给出了404

时间:2012-12-03 11:54:29

标签: magento

根据Alan's blog的说明,我在config.xml中添加了路由器:

<?xml version="1.0"?>
<config>
    <modules>
        <Clean_Integration>
            <version>1.0.0</version>
        </Clean_Integration>
    </modules>
    <admin>
        <routers>
            <wellnesscoach_app_redirect>
                <use>admin</use>
                <args>
                    <module>Clean_Integration</module>
                    <frontName>appsync</frontName>
                </args>
            </wellnesscoach_app_redirect>
        </routers>
    </admin>
</config>

然后我在这里定义了我的控制器app/code/local/Clean/Integration/Controllers/IndexController.php

<?php

die('checkpoint1');

class Clean_Integration_IndexController extends Mage_Adminhtml_Controller_Action {

    public function indexAction() {
        $this->_redirectUrl('/appointments/sync/backend/');
        die('checkpoint2');
    }
}

当我尝试打开此网址时,它会转到前端并抛出404.

什么导致magento没有拿起这个管理路由器?

3 个答案:

答案 0 :(得分:4)

<?xml version="1.0"?>
<config>
  <modules>
      <Clean_Integration>
          <version>1.0.0</version>
      </Clean_Integration>
  </modules>
  <admin>
    <routers>
        <integration>
            <use>admin</use>
            <args>
                <module>Clean_Integration</module>
                <frontName>appsync</frontName>
            </args>
        </integration>
    </routers>
  </admin>

应为小写controllers

应用程序/代码/本地/清洁/集成/控制器/ IndexController.php

您可能还想将此文件放在Adminhtml文件夹中,以便将来如果要添加frontendadmin控制器,则不会遇到问题。

应用程序/代码/本地/清洁/集成/控制器/ Adminhtml / IndexController.php

答案 1 :(得分:1)

我看到你犯的一个错误就是将控制器放在一个名为“控制器”的文件夹中,而不是“控制器”(大小写错误)。

答案 2 :(得分:0)

将来有关此问题的其他人参考:

如果您的控制器使用标准名称IndexController.php,您仍需要命名文件名称和类< / em>使用...Controller约定的名称。

因此,如果您的控制器位于 Adminhtml 文件夹中,请将其命名为ExtensionController.php并在My_Module_Adminhtml_ExtensionController extends ...

中命名该类

归功于this excellent article。 HTH。