So weit ich weiß , dass , wenn ein benutzerdefiniertes Modul zu deinstallieren, ist es möglich hinzugefügt benutzerdefinierte Tabellen oder Spalten von benutzerdefinierten Modul zu entfernen , indem Sie mit uninstall.php
der sie \Magento\Framework\Setup\UninstallInterface
. Aber wie entferne ich benutzerdefinierte Attribute, die InstallData.php
bei der Deinstallation des Moduls hinzugefügt wurden ? Danke im Voraus!
11
Antworten:
In einem Modul würden Sie den folgenden Code verwenden, der die Abhängigkeitsinjektion für die Deinstallation verwendet. Es funktioniert überall gleich gut. Stellen Sie nur sicher, dass Sie die EavSetupFactory in den Konstruktor einfügen und dann die Methoden verwenden, um die Arbeit zu erledigen.
Darüber hinaus führt die Verwendung dieser Methode dazu, dass sich das eav-Attribut ordnungsgemäß aus allen Tabellen entfernt, da sie mithilfe von Einschränkungen verknüpft sind.
Übrigens empfehle ich die Verwendung von PHPStorm + xdebug. Sie werden so viel darüber lernen, wie all diese Dinge miteinander verbunden sind.
quelle
Customer::ENTITY
oderProduct::ENTITY
etc. anstelle von1
oder verwenden4
. (use Magento\Catalog\Model\Product; use Magento\Customer\Model\Customer;
)Sie können
\Magento\Eav\Api\AttributeRepositoryInterface::delete
dies verwenden.quelle
Verwenden Sie die Klasse Magento \ Customer \ Model \ Customer anstelle der Entitäts-ID 1 und 2.
Viel Spaß beim Codieren !!
quelle