Sejauh ini saya tahu bahwa ketika menghapus modul khusus, dimungkinkan untuk menghapus tabel atau kolom khusus yang ditambahkan oleh modul khusus dengan menggunakan uninstall.php
ekstensi mana \Magento\Framework\Setup\UninstallInterface
. Tetapi bagaimana cara menghapus atribut khusus yang ditambahkan InstallData.php
saat menghapus modul? Terima kasih sebelumnya!
11
Jawaban:
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.
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.
sumber
Customer::ENTITY
atau lainnya,Product::ENTITY
bukan1
atau4
. (use Magento\Catalog\Model\Product; use Magento\Customer\Model\Customer;
)Anda bisa menggunakannya
\Magento\Eav\Api\AttributeRepositoryInterface::delete
untuk ini.sumber
gunakan Magento \ Pelanggan \ Model \ Kelas pelanggan alih-alih entitas id seperti 1 dan 2.
Selamat Coding !!
sumber