Memperbarui ui_bookmark Table Saat Menambahkan Kolom melalui ui_component XML

9

Di Magento 2, ui_componentkisi-kisi berbasis memungkinkan Anda untuk menyusun ulang kolom dan Magento akan mengingat pengaturan Anda saat berikutnya Anda masuk. Ini dicapai dengan Magento menyimpan data dalam ui_bookmarktabel (melalui Magento\Ui\Model\Bookmarkobjek model).

Meskipun fitur ini rapi, ia dapat membuat masalah ketika pengembang ekstensi atau integrator sistem menggunakan Magento ui_componentXML untuk menambahkan kolom ke tabel. Jika ada data khusus ui_bookmarkmaka Magento akan (tampaknya) mengabaikan urutan pengurutan kolom baru dan hal-hal aneh / tak terduga dapat terjadi.

Apakah ada praktik terbaik dan / atau sistem untuk pengembang ekstensi yang ingin menambahkan kolom ke Grid UI (baik Magento atau milik mereka) dan memastikan kolom ada di suatu tempat dalam kaitannya dengan yang lain? yaitu - "Tombol tindakan kedua ini harus selalu muncul terakhir, atau selalu muncul kedua terakhir", atau "bidang nama harus selalu setelah ID.

Apakah pengembang ekstensi perlu, melalui app/code/Package/Module/Setup/...kelas, menjangkau ke ui_bookmarktabel dan memperbarui entri ini sendiri? Atau ada cara yang lebih baik untuk mencapai ini? Atau apakah pengembang ekstensi hanya perlu hidup dengan kolom yang ditambahkan ke tempat yang tidak terduga ketika pengguna sudah memiliki entri ui_bookmark?

Alan Storm
sumber

Jawaban:

4

Saya pikir ini bug di magento2.

Saya biasanya membersihkan tabel ui_bookmark setelah menambahkan kolom baru dengan modul apa pun.

Magento2 menyimpan posisi kolom bahkan jika tidak ada modifikasi dalam pemesanan kolom.

"positions":{
    "ids":0,
    "increment_id":1,
    "store_id":2,
    "created_at":3,
    "billing_name":4,
    "shipping_name":5,
    ...
}

Tetapi jika posisi kolom akan disimpan hanya setelah modifikasi pengguna, kami akan memiliki masalah yang sama dengan kolom baru.

Jika akan ditambahkan urutan relatif seperti as name column after idatau my_column before actions, kita akan memiliki menyeret jelek kolom di UI.

Jika Anda akan menghapus ui_bookmarktabel selama pemasangan modul - Anda dapat menghapus pengaturan pengguna khusus untuk daftar.

Mungkin, pengembang inti perlu memperbaiki kolom tindakan sebagai solusi parsial.

Saya pikir, bahwa pertanyaan ini bukan satu-satunya keputusan yang tepat

Maks
sumber