Атрибут подслушивания клиента не отображается в администраторе
Перед обновлением до 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();
}
}
Любая помощь была бы будьте очень признательны.
2 answers
Кажется, что он виден только тогда, когда есть полные 4 варианта 'used_in_forms', 'customer_account_create', 'customer_account_edit', 'checkout_register', 'adminhtml_customer'. Не волнуйтесь, потому что даже когда вы устанавливаете это. этот атрибут не будет виден в форме регистрации
Создайте 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>
Запуск команд: обновление установки, очистка кэша и очистка кэша