การอัพเดตตาราง ui_bookmark เมื่อเพิ่มคอลัมน์ผ่าน ui_component XML


9

ในวีโอไอพี 2, ui_componentกริดตามช่วยให้คุณสามารถสั่งซื้อและคอลัมน์วีโอไอพีจะจดจำการตั้งค่าของคุณในครั้งต่อไปที่คุณเข้าสู่ระบบ. นี้สามารถทำได้โดยวีโอไอพีการบันทึกข้อมูลในui_bookmarkตาราง (ผ่านMagento\Ui\Model\Bookmarkวัตถุรูปแบบ)

ในขณะที่คุณสมบัตินี้เป็นระเบียบมันสามารถสร้างปัญหาเมื่อผู้พัฒนาส่วนขยายหรือผู้รวมระบบใช้ Magento ui_componentXML เพื่อเพิ่มคอลัมน์ลงในตาราง หากมีข้อมูลที่กำหนดเองui_bookmarkวีโอไอพีจะ (ดูเหมือน) ละเว้นการเรียงลำดับของคอลัมน์ใหม่และสิ่งที่แปลก / ไม่คาดคิดสามารถเกิดขึ้นได้

มีวิธีปฏิบัติที่ดีที่สุดและ / หรือระบบสำหรับนักพัฒนาส่วนขยายที่ต้องการเพิ่มคอลัมน์ใน UI กริด (ทั้ง Magento หรือของพวกเขาเอง) และให้แน่ใจว่าคอลัมน์อยู่ที่ไหนสักแห่งที่เกี่ยวข้องกับคนอื่น ๆ ? ie - "ปุ่มการกระทำที่สองนี้ควรปรากฏครั้งสุดท้ายเสมอหรือปรากฏครั้งที่สองที่ผ่านมาเสมอ" หรือ "ฟิลด์ชื่อควรจะอยู่หลัง ID

นักพัฒนาส่วนขยายจำเป็นต้องapp/code/Package/Module/Setup/...เข้าถึงui_bookmarkตารางและอัปเดตข้อมูลเหล่านี้ด้วยตนเองผ่านชั้นเรียนหรือไม่ หรือมีวิธีที่ดีกว่าเพื่อให้บรรลุนี้ หรือนักพัฒนาส่วนขยายจำเป็นต้องอาศัยอยู่กับคอลัมน์ที่ถูกเพิ่มไปยังสถานที่ที่ไม่คาดคิดเมื่อผู้ใช้มีรายการอยู่แล้วui_bookmarkหรือไม่?

คำตอบ:


4

ฉันคิดว่านี่เป็นข้อผิดพลาดใน magento2

ฉันมักจะทำความสะอาดตาราง ui_bookmark หลังจากเพิ่มคอลัมน์ใหม่ด้วยโมดูลใด ๆ

Magento2 บันทึกตำแหน่งคอลัมน์แม้ว่าจะไม่มีการแก้ไขใด ๆ ในการเรียงลำดับคอลัมน์

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

แต่ถ้าตำแหน่งของคอลัมน์จะถูกเก็บไว้หลังจากการแก้ไขโดยผู้ใช้เราจะมีปัญหาเดียวกันกับคอลัมน์ใหม่

หากจะเพิ่มการจัดลำดับแบบสัมพันธ์เช่นในname column after idหรือmy_column before actionsเราจะลากคอลัมน์ที่น่าเกลียดใน UI

หากคุณจะล้างui_bookmarkตารางระหว่างการติดตั้งโมดูล - คุณสามารถล้างการตั้งค่าผู้ใช้ที่กำหนดเองสำหรับรายชื่อ

บางทีผู้พัฒนาหลักจำเป็นต้องแก้ไขคอลัมน์การกระทำล่าสุดเป็นวิธีแก้ปัญหาบางส่วน

ฉันคิดว่าคำถามนี้ไม่ได้เป็นการตัดสินใจที่ถูกต้องเท่านั้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.