/** * Enforce format of the street field * * @param array|string $key * @param null $value * @return \Magento\Framework\Object */ public function setData($key, $value = null) { if (is_array($key)) { $key = $this->_implodeStreetField($key); } elseif ($key == 'street') { $value = $this->_implodeStreetValue($value); } return parent::setData($key, $value); }
/** * @param string[] $attributesAsArray * @param \Magento\Framework\Model\AbstractExtensibleModel $model * @return \Magento\Framework\Api\AttributeInterface[] */ protected function addCustomAttributesToModel($attributesAsArray, $model) { $addedAttributes = []; foreach ($attributesAsArray as $attributeCode => $attributeValue) { $addedAttributes[$attributeCode] = new AttributeValue([AttributeValue::ATTRIBUTE_CODE => $attributeCode, AttributeValue::VALUE => $attributeValue]); } $model->setData(array_merge($model->getData(), [\Magento\Framework\Api\CustomAttributesDataInterface::CUSTOM_ATTRIBUTES => $addedAttributes])); return $addedAttributes; }
/** * Overwrite data in the object. * * The $key can be string or array. * If $key is string, the attribute value will be overwritten by $value * * If $key is an array, it will overwrite all the data in the object. * * $isChanged will specify if the object needs to be saved after an update. * * @param string|array $key * @param mixed $value * @return \Magento\Framework\DataObject */ public function setData($key, $value = null) { if ($this->hasLockedAttributes()) { if (is_array($key)) { foreach ($this->getLockedAttributes() as $attribute) { if (isset($key[$attribute])) { unset($key[$attribute]); } } } elseif ($this->isLockedAttribute($key)) { return $this; } } elseif ($this->isReadonly()) { return $this; } return parent::setData($key, $value); }
/** * Enforce format of the street field or other multiline custom attributes * * @param array|string $key * @param null $value * @return \Magento\Framework\DataObject */ public function setData($key, $value = null) { if (is_array($key)) { $key = $this->_implodeArrayField($key); } elseif (is_array($value) && $this->isAddressMultilineAttribute($key)) { $value = $this->_implodeArrayValues($value); } return parent::setData($key, $value); }
/** * Enforce format of the street field * * @param array|string $key * @param null $value * @return \Magento\Framework\Object */ public function setData($key, $value = null) { if (is_array($key)) { $key = $this->_implodeArrayField($key); } elseif (is_array($value)) { $value = $this->_implodeArrayValues($value); } return parent::setData($key, $value); }
/** * @param string[] $attributesAsArray * @param \Magento\Framework\Model\AbstractExtensibleModel $model * @return \Magento\Framework\Api\AttributeInterface[] */ protected function addCustomAttributesToModel($attributesAsArray, $model) { $objectManager = new ObjectManagerHelper($this); /** @var \Magento\Framework\Api\AttributeDataBuilder $attributeValueBuilder */ $attributeValueBuilder = $objectManager->getObject('Magento\\Framework\\Api\\AttributeDataBuilder'); $addedAttributes = []; foreach ($attributesAsArray as $attributeCode => $attributeValue) { $addedAttributes[$attributeCode] = $attributeValueBuilder->setAttributeCode($attributeCode)->setValue($attributeValue)->create(); } $model->setData(array_merge($model->getData(), [\Magento\Framework\Api\ExtensibleDataInterface::CUSTOM_ATTRIBUTES => $addedAttributes])); return $addedAttributes; }