KnpPaginator Bundleを使用して、2ページ分の結果セットを(2つのテーブルを表す)twigに渡すコントローラが1つあります。Symfony2 KnpPaginatorバンドルは、私のビューの2ページ目のテーブルでソートできない
両方のテーブルが表示され、改ページされていますが、それらのテーブルを並べ替えることはできません。 編集:表1のページを変更すると、表2のページもそのページ番号に変更されます。
これらのいずれかをソートしようとすると、指定されたクエリに[t]のエイリアスがありません。また、指定されたクエリに[r]でエイリアス化されたコンポーネントはありません。
コントローラ:
$em = $this->getDoctrine()->getEntityManager();
$pageSize = $this->container->getParameter('page_size');
$paginator = $this->get('knp_paginator');
/* Queries */
$queryTest = $em
->createQuery('
SELECT t FROM PanasonicTestEtAvisBundle:Test t
JOIN t.product p
WHERE p.id = :id
AND t.isDeleted = :isdeleted
ORDER BY t.creationDate DESC'
)->setParameter('id', $id)
->setParameter('isdeleted', '0');
$queryReview = $em
->createQuery('
SELECT r FROM PanasonicTestEtAvisBundle:Review r
JOIN r.product p
WHERE p.id = :id
AND r.isDeleted = :isdeleted
ORDER BY r.creationDate DESC'
)->setParameter('id', $id)
->setParameter('isdeleted', '0');
/* paginated results */
$paginationTest = $paginator->paginate($queryTest, $this->get('request')->query->get('page', 1), $pageSize);
// compact('paginationTest');
$paginationReview = $paginator->paginate($queryReview, $this->get('request')->query->get('page', 1), $pageSize);
// compact('paginationReview');
// compact('pagination');
return $this->render('PanasonicTestEtAvisBundle:Product:show.html.twig', array(
'paginationTest' => $paginationTest,
'paginationReview' => $paginationReview
));
Iは、(paginationTest & paginationReview)両方の改ページを渡す場合にのみ、エラーは私は一つだけを通過させる場合、それは完璧に動作し、アップ示します。
誰でもこの問題を解決する方法を教えていただけますか?
ありがとう、これで問題は解決します。 knp-componentファイル(Paginatior。php)私は 'sortFieldParameterName' => "sort1"、 "sortDirectionParameterName" => "direction1"を設定しなければならないことが判明しました。今うまく動作します:) – Rishi
私はあなたの解決策をその問題について実行していますが、説明したようにすべてをやったにもかかわらず、@ Rishiと同じエラーメッセージが表示されます。 – sonja
こんにちはSonja。私はこのバンドルをしばらく使っていませんが、下のTekMiの答えから推測すると、 'sortFieldParameterName'および/または 'sortDirectionParameterName'パラメータを設定する必要があります。 – Rishi