我希望能够保存属性值而不保存其父实体。 我通过我的模块的sql/setup文件创建了一个新的客户属性(参考),现在我想为每个现有客户填充该属性。我已经为该属性创建了后端模型,可以在实体加载(afterLoad)期间检测空值并生成内容,但我在该过程中保存实体有所犹豫。
理想情况下,我希望在
我可以编写一个脚本来加载所有客户的集合并设置该值,但是由于有超过50,000个客户,我担心在生产服务器上运行它会对性能产生影响...
有任何想法感激不尽。
JD
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