Проблема с пакетом Knp Paginator и параметром фильтрации

Я использую пакет knp Paginator на странице, содержащей список записей, и на той же странице существует окно поиска, которое может дать возможность поиска по списку записей. после того, как я задаю термин фильтра и нажимаю кнопку поиска, список хорошо отображается на странице, но когда список превышает лимит для каждой страницы, и я нажимаю, например, кнопку страницы 2 пагинатора пакета knp, он загружает мне все записи , он не запоминает введенный мной термин.

вы найдете мое действие метода, используемое для фильтрации:

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, поэтому проблема в том, как заставить пакет knp paginator использовать один и тот же поисковый запрос ($ data ['searchterm']) на нескольких страницах


person user1655410    schedule 19.05.2014    source источник


Ответы (1)


Одно из решений - использовать форму GET, а не форму POST.

Если вы используете GET, параметры находятся в URL-адресе, поэтому параметры находятся по ссылке на следующей странице!

person griotteau    schedule 19.05.2014
comment
Так просто, но это палочка-выручалочка :) - person pid; 01.10.2014