Paginate результаты с ошибкой KipPaginatorBundle

Я создаю форму поиска следующим образом:

когда я запускаю поиск, он показывает мне первую страницу с 10 элементами, но когда я нажимаю на страницу 2, он показывает мне все элементы моей базы данных без учета критериев поиска. я не понимаю

class FrontController extends Controller
{
/**
* @Route("/", name="front_homepage")
*/
public function indexAction(){

$form = $this->createForm(SearchType::class);

return $this->render('FrontBundle::layout.html.twig', array(
'form' => $form->createView(),
));
}

}class SearchController extends Controller
{
/**
* @param Request $request
* @Route("/search/form", name="front_search_form")
*/
public function searchOffreAction(Request $request)
{
$em = $this->getDoctrine()->getManager();

$form = $this->createForm(SearchType::class);

$form->handleRequest($request);

if($form->isSubmitted()) {

$entity = $em->getRepository('CoreBundle:Foo')->findByCritere($form->getData());

/** @var Paginator $paginator */
$paginator  = $this->get('knp_paginator');
$result = $paginator->paginate(
$entity,
$request->query->getInt('page', 1),
10
);

return $this->render('FrontBundle:Search:offre.html.twig', ['offres' => $result]);

}

return $this->createNotFoundException();
}

}

Спасибо вам всем,

1

Решение

Я думаю, что проблема ваша $entity должен быть запрос, а не результат.

Попробуйте это вместо этого:

$em = $this->getDoctrine()->getManager();
$dql   = "SELECT f FROM CoreBundle:Foo f";
$query = $em->createQuery($dql);

/** @var Paginator $paginator */
$paginator  = $this->get('knp_paginator');
$result = $paginator->paginate(
$query,
$request->query->getInt('page', 1),
10
);

Не уверен, что это сработает, но попробуйте.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]