我正在尝试覆盖 Magento 社区模块中的 Ajax 控制器。问题是我的控制器只有在方法不存在时才会被调用。我不能覆盖任何被覆盖的控制器方法。
这是我的代码
配置.xml:
<frontend>
<routers>
<overriden_module>
<args>
<modules>
<My_Module before="Overriden_Module">My_Module</My_Module>
</modules>
</args>
</overriden_module>
</routers>
</frontend>
我正在重写一个 ajax 控制器,所以 - AjaxController.php:
<?php
require_once (Mage::getModuleDir('controllers', 'Overriden_Module') . DS .'AjaxController.php');
class My_Module_AjaxController extends Overriden_Module_AjaxController {
//This is an overridden method and no hit
public function streetAction() {
die('FOO');
}
// This action is not overridden and gets called
public function otherAction(){
die('BAR')
}
}
根据要求,这是我要覆盖的模块中的路由器部分:
<routers>
<module_name>
<use>standard</use>
<args>
<module>Module_name</module>
<frontName>frontname</frontName>
</args>
</module_name>
<checkout>
<args>
<modules>
<Module_Name before="Mage_Checkout">Module_Name_Checkout</Module_Name>
</modules>
</args>
</checkout>
</routers>
谢谢你。