我希望能够保存属性的值而不保存它的父实体.我已经通过我的模块的sql / setup文件(
ref)创建了一个新的客户属性,现在我想为每个现有客户填充该属性.我为该属性创建了一个后端模型,该模型在实体加载(afterLoad)期间检测空值并生成内容,但我对在此过程中保存实体犹豫不决.
class Aligent_Referral_Model_Customer_Attribute_Backend_Referralcode extends Mage_Eav_Model_Entity_Attribute_Backend_Abstract { public function afterLoad($oCustomer) { $vAttrCode = $this->getAttribute()->getAttributeCode(); $vValue = $oCustomer->getData($vAttrCode); if (empty($vValue)){ $oCustomer->setData($vAttrCode,Mage::helper('referral')->generateRafCode($oCustomer)); } return $this; } }
理想情况下,我想在afterLoad方法中调用$this-> getAttribute() – > setValue(‘blah’) – > save(),以便它不依赖于用户点击保存.
我可以编写一个脚本来加载所有客户的集合并引导它们设置值,但是有超过50,000个客户,我担心在生产服务器上运行它会对性能产生影响……
任何想法都赞赏.
JD