Пока я знаю, что при удалении пользовательского модуля можно удалить пользовательские таблицы или столбцы, добавленные пользовательским модулем, используя uninstall.php
расширение \Magento\Framework\Setup\UninstallInterface
. Но как удалить пользовательские атрибуты, добавленные InstallData.php
при удалении модуля? Заранее спасибо!
11
Ответы:
В модуле вы должны использовать следующий код, который использует внедрение зависимостей для удаления. Он одинаково хорошо работает в любом другом месте, просто убедитесь, что EavSetupFactory вставлен в конструктор, а затем используйте его методы для выполнения работы.
Кроме того, использование этого метода приведет к тому, что атрибут eav должным образом удалит себя из всех таблиц, поскольку они связаны с использованием ограничений.
Кстати, я рекомендую использовать PHPStorm + xdebug. Вы так много узнаете о том, как все эти вещи связаны друг с другом.
источник
Customer::ENTITY
илиProduct::ENTITY
т. Д. Вместо1
или4
. (use Magento\Catalog\Model\Product; use Magento\Customer\Model\Customer;
)Вы можете использовать
\Magento\Eav\Api\AttributeRepositoryInterface::delete
для этого.источник
используйте Magento \ Customer \ Model \ Customer класс вместо идентификатора объекта, например 1 и 2.
Удачного кодирования!
источник