Атрибут подслушивания клиента не отображается в администраторе


Перед обновлением до Magento 2.2.1 я использовал версию 2.1.10 и создал пользовательский атрибут uuid для клиентов. Атрибут был добавлен в форму клиента в панели администратора и сохранен правильно. Однако после обновления до версии 2.2.1 атрибут больше не отображается в форме. Он все еще присутствует в таблице базы данных eav_attributes, поэтому я не уверен, что изменилось.

Это мой код, используемый для начальной настройки атрибута:

public function __construct(CustomerSetupFactory $customerSetupFactory,
                            AttributeSetFactory $attributeSetFactory)
{
    $this->customerSetupFactory = $customerSetupFactory;
    $this->attributeSetFactory = $attributeSetFactory;
}

public function install(ModuleDataSetupInterface $setup,
                        ModuleContextInterface $context)
{
    /** @var CustomerSetup $customerSetup */
    $customerSetup = $this->customerSetupFactory->create(['setup' => $setup]);
    $setup->startSetup();
    $attributesInfo = [
        'uuid' => [
            'label' => 'UUID',
            'type' => 'varchar',
            'input' => 'text',
            'position' => 1000,
            'visible' => true,
            'required' => false,
            'system' => 0,
            'user_defined' => true,
            'unique' => true,
        ]
    ];
    $customerEntity = $customerSetup->getEavConfig()->getEntityType('customer');
    $attributeSetId = $customerEntity->getDefaultAttributeSetId();
    /** @var $attributeSet AttributeSet */
    $attributeSet = $this->attributeSetFactory->create();
    $attributeGroupId = $attributeSet->getDefaultGroupId($attributeSetId);
    foreach ($attributesInfo as $attributeCode => $attributeParams) {
        $customerSetup->addAttribute(Customer::ENTITY, $attributeCode, $attributeParams);
    }
    $magentoUuidAttribute = $customerSetup->getEavConfig()
        ->getAttribute(Customer::ENTITY, 'uuid');
    $magentoUuidAttribute->addData([
        'attribute_set_id' => $attributeSetId,
        'attribute_group_id' => $attributeGroupId,
        'used_in_forms' => ['adminhtml_customer'],
    ]);
    $magentoUuidAttribute->save();
    $setup->endSetup();
}

}

Любая помощь была бы будьте очень признательны.

Author: Key Shang, 2017-12-09

2 answers

Кажется, что он виден только тогда, когда есть полные 4 варианта 'used_in_forms', 'customer_account_create', 'customer_account_edit', 'checkout_register', 'adminhtml_customer'. Не волнуйтесь, потому что даже когда вы устанавливаете это. этот атрибут не будет виден в форме регистрации

 1
Author: Steve Pham, 2019-10-04 07:11:45

Создайте XML-файл компонента пользовательского интерфейса для этого, Путь и имя файла должны быть : Namespace/Module/view/adminhtml/ui_component/customer_form.xml

<?xml version="1.0" encoding="UTF-8"?>
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
    <fieldset name="customer">
        <field name="ATTRIBUTECODE" formElement="input">
            <settings>
                <visible>true</visible>
            </settings>
        </field>
    </fieldset>
</form>

Запуск команд: обновление установки, очистка кэша и очистка кэша

 2
Author: Pradip Garchar, 2019-02-12 15:04:45