我试图用这些指令覆盖 Controller ,但它们只适用于 Action 方法,而不适用于其他任何方法。是否可以覆盖 Controller _init() 方法?
问问题
1633 次
1 回答
0
确保您正在扩展正确的文件。这种方法确实有效。使用 CustomerController 进行测试。将重新发布我的代码:
配置.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
NOT Mage_Adminhtml_Controller_Action
,并且请注意该_initCustomer()
功能受到保护,这可能是阻碍您的原因。
于 2012-05-22T14:00:58.110 回答