Значение параметра magento 2 по умолчанию в настройках: обновление
У меня есть проблема. в моем файле InstallCustomerAttributes.php для установки: обновить, у меня есть этот код:
public function updateCustomerAttributes($fixture, $type)
{
$rows = $this->csvReader->getData($this->fixtureManager->getFixture($fixture));
$rowsHeader = array_shift($rows);
foreach ($rows as $row) {
$row = array_combine($rowsHeader, $row);
$attribute = $this->eavConfig->getAttribute($type, $row['code']);
if ($attribute->usesSource() && !empty($row['option'])) {
$attribute->setStoreId(0);
$row['option'] = $this->prepareOptions($row['option'], $attribute, 'update');
}
$label = explode(',', $row['frontend_labels']);
$label[1] = isset($label[1]) ? $label[1] : $label[0];
$row['store_labels'] = [
$this->storeManager->getStore(StoreHelper::STORE_CODE_EN)->getId() => $label[0],
$this->storeManager->getStore(StoreHelper::STORE_CODE_FR)->getId() => $label[1],
];
unset($row['frontend_labels']);
if (!empty($row['used_in_forms'])) {
$row['used_in_forms'] = explode(',', $row['used_in_forms']);
}
$attribute->addData($row);
$attribute->getResource()->save($attribute);
$this->saveDefaultValue($attribute, $row);
}
}
protected function saveDefaultValue($attribute, $row)
{
$input = isset($row['input']) ? $row['input'] : $row['frontend_input'];
if (($input == 'select') && !empty($row['default'])) {
$optionId = $attribute->getSource()->getOptionId($row['default']);
if ($optionId) {
$attribute->setData('default_value', $optionId);
$attribute->getResource()->save($attribute);
}
}
}
Сначала я добавляю данные для атрибута и сохраняю их, после чего сохраняю значение параметра по умолчанию для этого атрибута.
Проблема в том, что значение по умолчанию всегда пустое после этих шагов, но если комментировать $attribute->addData($row); сохранение значения по умолчанию ОК
это проблема magento? версия magento - 2.1.9