Jusqu'à présent, je sais que lors de la désinstallation d'un module personnalisé, il est possible de supprimer des tables ou des colonnes personnalisées ajoutées par un module personnalisé en utilisant uninstall.php
qui s'étend \Magento\Framework\Setup\UninstallInterface
. Mais comment supprimer les attributs personnalisés ajoutés InstallData.php
lors de la désinstallation du module? Merci d'avance!
11
Réponses:
Dans un module, vous utiliseriez le code suivant qui utilise l'injection de dépendances pour la désinstallation. Cela fonctionne aussi bien partout ailleurs, assurez-vous simplement d'injecter EavSetupFactory dans le constructeur, puis utilisez ses méthodes pour effectuer le travail.
En outre, l'utilisation de cette méthode entraînera la suppression correcte de l'attribut eav de toutes les tables, car elles sont liées à l'aide de contraintes.
BTW, je recommande d'utiliser PHPStorm + xdebug. Vous en apprendrez tellement sur la façon dont toutes ces choses se connectent.
la source
Customer::ENTITY
ouProduct::ENTITY
etc. au lieu de1
ou4
. (use Magento\Catalog\Model\Product; use Magento\Customer\Model\Customer;
)Vous pouvez utiliser
\Magento\Eav\Api\AttributeRepositoryInterface::delete
pour cela.la source
utilisez Magento \ Customer \ Model \ Customer class au lieu de l'identifiant d'entité comme 1 et 2.
Codage heureux !!
la source