Do tej pory wiem, że podczas odinstalowywania niestandardowego modułu można usunąć niestandardowe tabele lub kolumny dodane przez niestandardowy moduł, używając uninstall.php
rozszerzenia \Magento\Framework\Setup\UninstallInterface
. Ale jak usunąć niestandardowe atrybuty dodane InstallData.php
podczas odinstalowywania modułu? Z góry dziękuję!
11
Odpowiedzi:
W module użyłbyś następującego kodu, który wykorzystuje wstrzykiwanie zależności do deinstalacji. Działa równie dobrze gdzie indziej, po prostu wstrzyknij EavSetupFactory do konstruktora, a następnie użyj jego metod do wykonania pracy.
Ponadto użycie tej metody spowoduje prawidłowe usunięcie atrybutu eav ze wszystkich tabel, ponieważ są one połączone za pomocą ograniczeń.
BTW, polecam użycie PHPStorm + xdebug. Dowiesz się TAK dużo o tym, jak wszystkie te rzeczy łączą się ze sobą.
źródło
Customer::ENTITY
lubProduct::ENTITY
itp. Zamiast1
lub4
. (use Magento\Catalog\Model\Product; use Magento\Customer\Model\Customer;
)Możesz
\Magento\Eav\Api\AttributeRepositoryInterface::delete
do tego użyć .źródło
użyj Magento \ Customer \ Model \ Customer class zamiast identyfikatora encji jak 1 i 2.
Happy Coding !!
źródło