试图覆盖_beforeSave方法和Magento同时调用自定义方法和核心方法

时间:2013-08-08 06:04:46

标签: magento

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

如何停止此行为,只让我的自定义方法运行?

请建议。

由于

1 个答案:

答案 0 :(得分:2)

回答了同样的问题here。主要思想是,如果您从原始类复制方法,则此行parent::_beforeSave($customer)将调用原始方法 您可以用

替换该行
Mage_Eav_Model_Entity_Abstract::_beforeSave($customer);

感谢@ProxiBlue的想法。