Bir modülde, kaldırma için bağımlılık enjeksiyonunu kullanan aşağıdaki kodu kullanırsınız. Başka herhangi bir yerde eşit derecede iyi çalışır, sadece EavSetupFactory'yi yapıcıya enjekte ettiğinizden emin olun ve ardından işi yapmak için yöntemlerini kullanın.
<?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();
}
}
}
Ayrıca, bu yöntemi kullanmak, eav özniteliğinin tüm tablolardan düzgün şekilde kaldırılmasına neden olur, çünkü kısıtlamalar kullanılarak bağlanırlar.
BTW, PHPStorm + xdebug kullanmanızı öneririm. Tüm bu şeylerin birbirine nasıl bağlandığı hakkında çok şey öğreneceksiniz.