1
我想覆蓋Magento社區模塊中的Ajax控制器。問題是隻有當方法不存在時,我的控制器纔會被調用。我無法重寫任何重寫的控制器方法。控制器覆蓋Magento(現有方法未覆蓋)
這裏是我的代碼
config.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>
謝謝。
您列出Overriden_Module在你的模塊配置的依賴,以確保它得到你之前的裝?如果沒有,我會認爲你會遇到其他問題,但你永遠不知道。 –
@Cags是的,它被列爲依賴項。我也覆蓋模型和塊。我也檢查了合併的config.xml,加載順序與它應該是一樣的。儘管感謝您的建議。 – ucaka
' '與此無關。其他模塊的標準路由器配置是什麼樣的? –
benmarks