Я пытаюсь использовать 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();
}