ui_component XMLを介して列を追加するときのui_bookmarkテーブルの更新


9

Magento 2では、ui_componentベースのグリッドを使用して列を並べ替えることができ、Magentoは次回ログインしたときに設定を記憶します。これは、Magentoがui_bookmarkMagento\Ui\Model\Bookmarkモデルオブジェクトを介して)テーブルにデータを保存することで実現されます。

この機能は適切ですが、拡張機能の開発者またはシステムインテグレーターがMagento ui_componentXMLを使用してテーブルに列を追加すると問題が発生する可能性があります。カスタムデータがある場合ui_bookmark、Magentoは(一見)新しい列の並べ替え順序を無視し、奇妙な/予期しないことが発生する可能性があります。

(Magentoまたは独自の)UIグリッドに列を追加して、列が他のどこかに関連していることを確認する拡張開発者向けのベストプラクティスやシステムはありますか?つまり、「この2番目のアクションボタンは常に最後に表示されるか、常に2番目に最後に表示されます」、または「名前フィールドは常に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.