1
我試圖用these instructions覆蓋Controller,但它們只適用於Action方法,但不適用於其他方法。是否有可能重寫Controller _init()方法?Magento覆蓋控制器初始化方法
我試圖用these instructions覆蓋Controller,但它們只適用於Action方法,但不適用於其他方法。是否有可能重寫Controller _init()方法?Magento覆蓋控制器初始化方法
請確保您正在擴展正確的文件。這種方法確實有效。使用CustomerController進行測試。將重新發布我的代碼:
config.xml文件:
<admin>
<routers>
<module>
<use>admin</use>
<args>
<module>Company_Module</module>
<frontName>module</frontName>
</args>
</module>
<adminhtml>
<args>
<modules>
<module before="Mage_Adminhtml">Company_Module</module>
</modules>
</args>
</adminhtml>
</routers>
</admin>
公司/模塊/控制器/ CustomerController.php:
<?php
include_once("Mage/Adminhtml/controllers/CustomerController.php");
class Company_Module_CustomerController extends Mage_Adminhtml_CustomerController
{
protected function _initCustomer($idFieldname = 'id')
{
Mage::log('overridden');
parent::_initCustomer($idFieldname);
}
}
注意的包括,注意,它擴展控制器Mage_Adminhtml_CustomerController
NOTMage_Adminhtml_Controller_Action
,另外,請注意,_initCustomer()
功能是受保護的,這可能是什麼阻止你。
請更改你的名字 – sulabh
我找不到任何幫助,我很着急,所以我只是編輯模塊文件,現在我必須在模塊更新時合併那些文件,但至少它能夠工作。如果有人知道如何重寫控制器init方法,那麼知道這一點很好。 – newbie