Значение параметра 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

0 ответов

Другие вопросы по тегам