需要覆盖customer_resource类。我为资源重写添加了必需的config.xml选项,但是当覆盖类方法从其自身调用父类方法时,它实际上调用了我扩展到的父方法,也没有调用Mage_Customer_Model_Resource_Customer的父方法:
class My_Plugin_Model_Resource_Customer extends Mage_Customer_Model_Resource_Customer
{
protected function _beforeSave(Varien_Object $customer){
parent::_beforeSave($customer);
...
}
}
那么,在这种情况下如何正确调用父方法?在PHP中可以进行某种双重向下转换?
答案 0 :(得分:0)
最简单的解决方案,特别是这种情况,是致电:
Mage_Eav_Model_Entity_Abstract::_beforeSave($customer);
作为Mage_Customer_Model_Resource_Customer的必需父级是Mage_Eav_Model_Entity_Abstract,它将调用祖父母。
此外,还有ReflectionMethod-> invoke()
的方法此处有更多信息:How to call grandparent method without getting E_STRICT error?