2016-09-17 8 views
0

knp paginatorに関する質問があります。 私はSymfony 2.8を使用しています。 複合プライマリキーとそれに対応するknp paginatorを使用したリストページを持つテーブルを作成しました。 私は表示しようとすると例外が表示されます。 "エンティティのコンポジットプライマリキーで単一のIDを使用できません" knp paginatorとdoctrineのソースファイルを検査しようとしました。 回避策が見つかりました。knp paginatorを使用しているエンティティのコンポジットプライマリキーに単一のIDは使用できません

1)knpオプション "distinct"をfalseに設定します。

2)照会する次のヒントを設定します。

  • "knp_paginator.count"をクエリ結果の行数に設定します。
  • "knp_paginator.fetch_join_collection"をfalseに設定します。これは必要です。

これは正しいですか? 潜在的な問題はありますか?あなたが遭遇する可能性のある

答えて

0

問題はthis related issue on GitHUBにここに掲載されています

コレクションに参加フェッチのためにあなたのページネータクエリが呼び出したときにのみ、「問題」です。これを回避するには、上記のように通常の結合を使用します。欠点は、ページ区切りのエンティティがコレクションで水和されないことです。呼び出されると、コレクションは遅延ロードされなければなりません。

+0

ありがとうございました。 – Miwanoushi

+0

フェッチ結合を使用すると、エンティティの数が対応する行の数と異なることを理解します。 – Miwanoushi

+0

@Miwanoushiはい、確かに間違ったページ数につながる可能性があります。 – Wilt

関連する問題