0

我只是想覆盖资源模型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 正在调用这两种方法。

我怎样才能停止这种行为,只让我的自定义方法运行?

请建议。

谢谢

4

1 回答 1

2

同样的问题在这里得到了回答。主要思想是,如果您从原始类中复制方法,则此行将parent::_beforeSave($customer)调用原始方法。
您可以将该行替换为

Mage_Eav_Model_Entity_Abstract::_beforeSave($customer);

感谢@ProxiBlue 的想法。

于 2013-08-09T07:02:01.817 回答