我试图覆盖资源模型 Mage_Customer_Model_Resource_Customer 中的 _beforeSave()方法。
覆盖没有问题,因为我可以在自定义类中调用自定义_beforeSave 方法。
我的自定义类的配置是:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Abc_Customer>
<version>0.1.0</version>
</Abc_Customer>
</modules>
<global>
<models>
<cust>
<class>Abc_Customer_Model</class>
<resourceModel>cust_resource</resourceModel>
</cust>
<cust_resource>
<class>Abc_Customer_Model_Resource</class>
</cust_resource>
<customer_resource>
<rewrite>
<customer>Abc_Customer_Model_Resource_Customer</customer>
</rewrite>
</customer_resource>
</models>
</global>
</config>
之后我创建了 Abc_Customer_Model_Resource_Customer 类,从核心类中复制了 _beforeSave 方法,并根据需要进行了更改。
但现在的问题是,magento正在调用这两种方法。
如何停止此行为,只让我的自定义方法运行?
请建议。
由于
答案 0 :(得分:2)
回答了同样的问题here。主要思想是,如果您从原始类复制方法,则此行parent::_beforeSave($customer)
将调用原始方法
您可以用
Mage_Eav_Model_Entity_Abstract::_beforeSave($customer);
感谢@ProxiBlue的想法。