Ich habe ein Kundenattribut wie folgt definiert:
$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
]);
Meine Frage ist: Was ist der Unterschied auf dem Attribut , wenn ich gesetzt user_defined
zu false
? Und Situationen , in denen sollte ich user_defined
zu true
oder false
?
quelle
Um dies hinzuzufügen:
Wenn Sie Attribute über hinzufügen,
Install-/ UpdateSchema
stellen Sie sicher, dass Sie hinzufügen'user_defined' => true
. Für konfigurierbare Produkte können nur Nicht-Systemattribute (z. B. is_user_defined = 1) verwendet werden.quelle
Tatsächlich bemerke ich einen großen Unterschied, als ich Magento 1 lernte . Wenn ein Attribut auf user_defined = true festgelegt ist , wird es nicht in der Tabelle eav_entity_attribute erstellt . Sie finden es jedoch weiterhin in der Tabelle eav_attribute . Wenn user_defined = false festgelegt ist , wird es beim Erstellen sowohl in den Tabellen eav_entity_attribute als auch eav_attribute angezeigt . Aber im Gegenzug weiß ich nicht, warum dies den Unterschied ausmacht.
Ich bin mir bei Magento 2 nicht sicher, aber ich denke, Sie können es leicht überprüfen und andere wissen lassen.
quelle
Wenn ein Attribut als 'user_defined' festgelegt ist, kann ein Benutzer die Optionswerte innerhalb der Attributbenutzeroberfläche definieren.
Wenn Sie jedoch ein Quellmodell verwenden, muss 'user_defined' auf false gesetzt werden, da sonst die Optionen aus dem Quellmodell nicht geladen werden.
quelle
user_defined = true Attribute werden im Allgemeinen vom Katalogmanager erstellt, um produktspezifische Informationen zu erhalten.
user_defined = false für Magento-Standardattribute, die erforderlich sind, damit einige Funktionen funktionieren, oder für Module, die zusätzliche Attribute basierend auf Attributen bereitstellen , wie z . B. sku , qty , website_ids , product_online. Dies sind Systemattribute, die zum Verwalten von Menge und Umfang des Produkts erforderlich sind show_on_homepage kann ein Attribut sein, das im Backend etwas tut, um eine Funktion bereitzustellen, und sollte nicht vom Administrator gelöscht werden, da dies die Funktionalität beeinträchtigen könnte.
quelle
Eine andere vom Benutzer definierte Funktion bestimmt, ob Sie die Optionen des Attributs auf der Attributbearbeitungsseite im Backoffice bearbeiten können oder nicht. Wenn Sie also ein Attribut mit bestimmten Bezeichnungen haben, das ein Administrator nicht ändern soll, Sie sollten "user_defined" auf false setzen.
quelle