我在包含记录列表的页面中使用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']) / p>
答案 0 :(得分:4)
一种解决方案是使用GET表单,而不是POST表单。
如果你使用GET,参数都在url中,所以参数在下一页的链接上!