Knp Paginator与搜索表单
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Knp Paginator与搜索表单相关的知识,希望对你有一定的参考价值。
我正在尝试使用KNP paginator进行表单搜索。
一切正常,但是当我转到第2页时,他们将我发回第2页而没有搜索结果。
我在我的树枝上使用了POST方法,因为如果我使用GET方法,则不会发生任何事情。
我在我的问题上发现了很多帖子,但我不知道如何解决它。如果有人给我一些建议,请你帮我。
这是我的代码:
public function rechercheAction() {
$form = $this->createForm(RechercheClientType::class);
return $this->render('admin/client/recherche.html.twig',[
'form' => $form->createView()
]
);
}
/**
* @Route("/admin/client/recherche", name="recherche_client")
*/
public function rechercheTraitementAction(PaginatorInterface $paginator,Request $request) {
$session = $request->getSession();
$form = $this->createForm(RechercheClientType::class);
$form->handleRequest($request);
$query = $this->repository->recherche($form['rechercheClient']->getData());
$users = $paginator->paginate(
$query,
$request->query->getInt('page',1), 10
);
//Compte le nombre d'éléments recherchés
$count = count($query);
return $this->render('admin/client/data-tables.html.twig',[
'users' => $users,
'count' =>$count,
]
);
}
<!-- recherche.html.twig -->
<form action="{{ path('recherche_client') }}" method="post">
{{ form_widget(form.rechercheClient, { 'attr': { 'class' : "form-control",'placeholder': "Rechercher par ID, nom , prénom, mail ou société"} }) }}
{{ form_widget(form) }}
</form>
<!-- data-table.html.twig -->
<div class="" style="float:right">
{{ knp_pagination_render(users) }}
</div>
public function recherche($chaine) {
return $this->createQueryBuilder('u')
->andWhere('u.nom like :chaine')
->orWhere('u.prenom like :chaine')
->orWhere('u.email like :chaine')
->orWhere('u.societe like :chaine')
->orderBy('u.id')
->setParameter('chaine','%'.$chaine.'%')
->getQuery()
->getResult();
}
答案
Amigo我有同样的问题,但由于我们对代码的解释不同,我将展示我的例子。
$searchForm = $this->createFormBuilder($property)
->add('type', EntityType::class, [
'class' => Type::class,
'choice_label' => 'name',
'mapped' => false,
'expanded' => true,
'multiple' => true,
'label' => false,
])
->add('filter', SubmitType::class, [
'attr' => [
'class' => 'btn btn-outline-dark btn-rounded waves-effect'
]
])
->setMethod('GET')
->getForm();
->setMethod('GET')
有所作为
以上是关于Knp Paginator与搜索表单的主要内容,如果未能解决你的问题,请参考以下文章
Symfony, Knp Paginator Bundle:使用图标排序