根据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没有拿起这个管理路由器?
答案 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文件夹中,以便将来如果要添加frontend
和admin
控制器,则不会遇到问题。
应用程序/代码/本地/清洁/集成/控制器/ Adminhtml / IndexController.php
答案 1 :(得分:1)
我看到你犯的一个错误就是将控制器放在一个名为“控制器”的文件夹中,而不是“控制器”(大小写错误)。
答案 2 :(得分:0)
将来有关此问题的其他人参考:
如果您的控制器不使用标准名称IndexController.php
,您仍需要命名文件名称和类< / em>使用...Controller
约定的名称。
因此,如果您的控制器位于 Adminhtml 文件夹中,请将其命名为ExtensionController.php
并在My_Module_Adminhtml_ExtensionController extends ...
归功于this excellent article。 HTH。