1

根据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 不接这个管理路由器?

4

3 回答 3

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

app/code/local/Clean/Integration/controllers/IndexController.php

您可能还想把它放在 Adminhtml 文件夹中,这样如果您想添加一个frontend和一个admin控制器,将来就不会遇到问题。

app/code/local/Clean/Integration/controllers/Adminhtml/IndexController.php

于 2012-12-03T12:41:08.773 回答
1

我看到您犯的一个错误是将控制器放在名为“Controllers”而不是“controllers”的文件夹中(案例错误)。

于 2012-12-03T12:12:49.223 回答
0

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

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

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

归功于这篇出色的文章。HTH。

于 2013-06-08T19:49:08.267 回答