У меня есть атрибут клиента, определенный следующим образом:
$customerSetup->addAttribute(Customer::ENTITY, "attr_code", [
"type" => "varchar",
"backend" => "",
"label" => "Attribute Label",
"input" => "text",
"source" => "Magento\Eav\Model\Entity\Attribute\Source\Table",
"visible" => true,
"required" => false,
"default" => "",
"frontend" => "",
"unique" => false,
"note" => "",
'system' => 0,
'user_defined' => true
]);
Мой вопрос: какая разница по атрибуту , если я установил user_defined
в false
? И в каких ситуациях я должен установить user_defined
на true
или false
?
источник
Чтобы добавить к этому:
Если вы добавляете атрибуты через,
Install-/ UpdateSchema
обязательно добавьте в'user_defined' => true
. Только не системные атрибуты (например, is_user_defined = 1) могут использоваться для конфигурируемых продуктов.источник
На самом деле, я заметил большую разницу, когда я изучил Magento 1 . Если для атрибута установлено значение user_defined = true , он не будет создан в таблице eav_entity_attribute . Но все же вы можете найти его в таблице eav_attribute . Если установлено user_defined = false , то при его создании оно будет отображаться в таблицах eav_entity_attribute и eav_attribute . Но в свою очередь, я не знаю, почему это имеет значение / влияет.
Я не уверен насчет Magento 2, но, думаю, вы можете легко проверить это и сообщить другим.
источник
Если атрибут установлен как «user_defined», тогда пользователь может определить значения параметров внутри пользовательского интерфейса атрибута.
Однако если вы используете исходную модель, тогда для user_defined должно быть установлено значение false, в противном случае параметры исходной модели не загружаются.
источник
user_defined = true атрибуты, как правило, создаются менеджером каталога для получения информации о продукте.
user_defined = false для атрибутов Magento по умолчанию, которые требуются для работы некоторых функций или любого модуля, предоставляющего некоторые дополнительные функции на основе атрибута, такие как sku , qty , website_ids , product_online - системные атрибуты, необходимые для управления количеством и объемом продукта, аналогично is_featured или show_on_homepage может быть некоторым атрибутом, делающим что-то в бэкэнде, чтобы обеспечить некоторую функцию и не должен быть удален администратором, который может нарушить функциональность.
источник
Еще одна вещь, которую определил пользователь, заключается в том, что он определяет, можете ли вы редактировать или нет параметры атрибута на странице редактирования атрибута в бэк-офисе, поэтому, если у вас есть атрибут с конкретными метками, которые вы не хотите, чтобы пользователь администратора изменял, Вы должны установить "user_defined" в false.
источник