J'ai un attribut client défini comme suit:
$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
]);
Ma question est: quelle est la différence sur l'attribut si je mets user_defined
à false
? Et dans quelles situations je mis user_defined
à true
ou false
?
la source
Pour ajouter à cela:
Si vous ajoutez des attributs via
Install-/ UpdateSchema
assurez-vous d'en ajouter'user_defined' => true
. Seuls les attributs non système (par exemple, is_user_defined = 1) peuvent être utilisés pour les produits configurables.la source
En fait, je remarque une grande différence lorsque j'ai appris Magento 1 . Si un attribut est défini sur user_defined = true , il ne sera pas créé dans la table eav_entity_attribute . Mais vous pouvez toujours le trouver dans la table eav_attribute . Si set user_defined = false , lors de sa création, il apparaîtra dans les tables eav_entity_attribute et eav_attribute . Mais en retour, je ne sais pas pourquoi cela fait la différence / affecte.
Je ne suis pas sûr de Magento 2, mais je suppose que vous pouvez le vérifier facilement et le faire savoir aux autres.
la source
Si un attribut est défini comme «défini par l'utilisateur», un utilisateur peut définir les valeurs des options dans l'interface utilisateur de l'attribut.
Cependant, si vous utilisez un modèle source, 'user_defined' doit être défini sur false, sinon les options du modèle source ne sont pas chargées.
la source
user_defined = les attributs vrais sont généralement créés par le gestionnaire de catalogue pour avoir des informations spécifiques au produit.
user_defined = false pour les attributs par défaut de Magento qui sont requis pour que certaines fonctionnalités fonctionnent ou tout module fournissant des fonctionnalités supplémentaires basées sur l'attribut, comme sku , qty , website_ids , product_online sont des attributs système requis pour gérer la quantité et la portée du produit, de la même manière que is_featured ou show_on_homepage peut être un attribut faisant quelque chose dans le backend pour fournir une fonctionnalité et ne devrait pas être supprimé par l'utilisateur admin qui pourrait casser la fonctionnalité.
la source
Une autre chose que définit l'utilisateur est qu'il détermine si vous pouvez modifier ou non les options de l'attribut à partir de la page de modification d'attribut dans le back-office, donc si vous avez un attribut avec des étiquettes spécifiques que vous ne voulez pas qu'un utilisateur administrateur change, vous devez définir "user_defined" sur false.
la source