私が取り組んでいる Symfony2 CRM で検索を実行すると、上記のエラーが発生します。Google 検索によると、これは KNP Paginator バンドルに関連する問題のようですが、確かな解決策が見つからないようです。
この例では、OpenCart データベースのデータを使用しており、郵便番号と会社名で検索できるようにする必要があります。これらは両方とも Customer エンティティ内のマップされた値を介して結合された住所テーブルに存在しますdefaultaddress
。
findCustomerByPostcode
この目的のために、次のような関数でカスタム クエリを作成する必要がありました。
$this->getEntityManager()
->createQuery('SELECT c FROM AppBundle:Oc49Customer c JOIN AppBundle:Oc49Address a WITH c.defaultaddress = a.id WHERE a.postcode LIKE :postcode')
->setParameter('postcode','%'.$postcode.'%')
->getResult();
ただし、郵便番号で検索を実行すると、ブラウザーに次のエラーが表示されます。
リスナーの 1 つは、指定されたターゲットをカウントしてスライスする必要があります
Paginator.php
KNP バンドル内のファイルを参照します。私は最新バージョンの 2.5 に更新しましたが、このエラーを揺るがすことはできず、意味がありません。
結合されたテーブル内の値を介して検索する別の方法は考えられないため、どんな助けも大歓迎です。
これは、郵便番号検索からの結果を返し、次にコントローラーで次のように返します。
$customers = $customer_repository->findCustomerByPostcode($filter_value);
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$customers,
$request->query->get('page', 1),
20
);