Trong một mô-đun, bạn sẽ sử dụng đoạn mã sau sử dụng phép nội xạ phụ thuộc để gỡ cài đặt. Nó hoạt động tốt như nhau ở bất cứ nơi nào khác, chỉ cần đảm bảo tiêm EavSetupFactory vào hàm tạo và sau đó sử dụng các phương thức của nó để thực hiện công việc.
<?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();
}
}
}
Ngoài ra, sử dụng phương thức này sẽ khiến thuộc tính eav tự xóa chính xác khỏi tất cả các bảng, vì chúng được liên kết bằng các ràng buộc.
BTW, tôi khuyên bạn nên sử dụng PHPStorm + xdebug. Bạn sẽ học được rất nhiều về cách tất cả những thứ này kết nối với nhau.