PHP   发布时间:2019-11-08  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php – 保存属性值而不在Magento中保存其父实体大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我希望能够保存属性的值而不保存它的父实体.我已经通过我的模块的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

解决方法

EAV资源模型提供了保存单个属性而无需保存实体的功能.
$value = Mage::Helper('referral')->generateRafCode($oCustomer);
$oCustomer->setData($vAttrCode,$value)->getresource()->saveAttribute($oCustomer,$vAttrCodE);

大佬总结

以上是大佬教程为你收集整理的php – 保存属性值而不在Magento中保存其父实体全部内容,希望文章能够帮你解决php – 保存属性值而不在Magento中保存其父实体所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。