Comme vous le savez déjà, nous avions cette méthode ci-dessous dans magento pour enregistrer une valeur d'attribut spécifique comme celle-ci.
// saving product attribute
$product = Mage::getModel('catalog/product')->load('id here');
$product->setName('your name here');
$product->getResource()->saveAttribute($product, 'name');
ou
// saving customer attribute
$customer->setData($attrCode, $value)->getResource()->saveAttribute($customer, $attrCode);
Quelqu'un peut-il me faire connaître l' alternative de ce qui précède dans Magento2 .
magento-1.9
magento2
magento-2.1
Kingshuk Deb
la source
la source
Magento\Eav\Model\Entity\AbstractEntity::saveAttribute()
qui acceptera un objet de données et un code d'entité.public function saveAttribute(\Magento\Framework\DataObject $object, $attributeCode)
Juste pour clarifier la réponse de Jaimin:
Ce n'est pas vrai. Cela ne fonctionnera que pour les entités EAV qui s'étendent
Magento\Eav\Model\Entity\AbstractEntity
Si vous traitez avec une entité non EAV où le modèle de ressource s'étend,
Magento\Framework\Model\ResourceModel\Db\AbstractDb
vous devrez implémenter lasaveAttribute
méthode dans votre modèle de ressource.Dans Magento 2, ils l'ont fait pour la
Magento\Sales\Model\ResourceModel\Attribute
classe:la source
Dans le cas d'un produit, vous pouvez utiliser l'objet d'action de masse. Par exemple:
la source