Dalam sebuah modul, Anda akan menggunakan kode berikut yang menggunakan injeksi dependensi untuk menghapus instalasi. Ini berfungsi sama baiknya di tempat lain, pastikan untuk menyuntikkan EavSetupFactory ke konstruktor dan kemudian menggunakan metode-metodenya untuk melakukan pekerjaan.
<?php
namespace Company\Modulename\Setup {
class Uninstall implements \Magento\Framework\Setup\UninstallInterface
{
protected $eavSetupFactory;
public function __construct(\Magento\Eav\Setup\EavSetupFactory $eavSetupFactory)
{
$this->eavSetupFactory = $eavSetupFactory;
}
public function uninstall(\Magento\Framework\Setup\SchemaSetupInterface $setup, \Magento\Framework\Setup\ModuleContextInterface $context)
{
$setup->startSetup();
$eavSetup = $this->eavSetupFactory->create();
$entityTypeId = 1; // Find these in the eav_entity_type table
$eavSetup->removeAttribute($entityTypeId, 'attribute_code');
$setup->endSetup();
}
}
}
Selain itu, menggunakan metode ini akan menyebabkan atribut eav untuk menghapus dirinya sendiri dari semua tabel, karena mereka ditautkan menggunakan kendala.
BTW, saya sarankan menggunakan PHPStorm + xdebug. Anda akan belajar banyak tentang bagaimana semua hal ini terhubung bersama.