1

レコードのリストを含むページでknp Paginatorバンドルを使用し、同じページにレコードのリストを検索するオプションを提供できる検索ボックスが存在します。フィルター用語を指定して検索ボタンを押した後、リストはページにうまく表示されますが、リストがすべてのページの制限数を超えて、たとえばknp bundle paginatorのページ2ボタンを押すと、すべてのレコードが読み込まれます、入力した用語を覚えていません。

フィルタリングに使用される私のメソッドアクションが見つかります:

public function searchAction(Request $request)
    {

        $em = $this->getDoctrine()->getManager();
        $form =  $this->createSearchForm();
        $form->handleRequest($request);
        //initialisation de l'objet paginator
        $paginator  = $this->get('knp_paginator');

            $data=$form->getData();
            $entities = $em->getRepository('EnsDataBundle:Data')->findterm($data['searchterm']);

            $pagination = $paginator->paginate($entities, $this->get('request')->query->get('page', 1),3);


            return $this->render('EnsDataBundle:Data:index.html.twig', array(
                'entities' => $pagination,
                'form' => $form->createView(),
            ));
    }

上記の方法はknp paginator bundleがなくても非常にうまく機能するため、問題はknp paginator bundleで複数のページで同じ検索語($data['searchterm'])を使用する方法です

4

1 に答える 1

4

1 つの解決策は、POST フォームではなく GET フォームを使用することです。

GET を使用する場合、パラメーターは URL にあるため、パラメーターは次のページのリンクにあります。

于 2014-05-19T16:03:43.547 に答える