У меня есть 1 контроллер, который передает 2 paginated набор результатов на веточку (в виде 2 массивов, представляющих таблицы), используя пакет KnpPaginator Bundle.Symfony2 KnpPaginator bundle, не может сортировать по 2 таблицам с разбивкой по страницам в моем представлении
Пока обе таблицы отображаются и разбиты на страницы, я не могу их отсортировать. Редактировать: Когда я меняю страницу таблицы 1, страница таблицы 2 также изменяется на этот номер страницы.
Попытка сортировки любого из них возвращает: в заданном запросе нет элемента, сгенерированного [t], или в заданном запросе нет компонента, сгенерированного [r].
Контроллер:
$em = $this->getDoctrine()->getEntityManager();
$pageSize = $this->container->getParameter('page_size');
$paginator = $this->get('knp_paginator');
/* Queries */
$queryTest = $em
->createQuery('
SELECT t FROM PanasonicTestEtAvisBundle:Test t
JOIN t.product p
WHERE p.id = :id
AND t.isDeleted = :isdeleted
ORDER BY t.creationDate DESC'
)->setParameter('id', $id)
->setParameter('isdeleted', '0');
$queryReview = $em
->createQuery('
SELECT r FROM PanasonicTestEtAvisBundle:Review r
JOIN r.product p
WHERE p.id = :id
AND r.isDeleted = :isdeleted
ORDER BY r.creationDate DESC'
)->setParameter('id', $id)
->setParameter('isdeleted', '0');
/* paginated results */
$paginationTest = $paginator->paginate($queryTest, $this->get('request')->query->get('page', 1), $pageSize);
// compact('paginationTest');
$paginationReview = $paginator->paginate($queryReview, $this->get('request')->query->get('page', 1), $pageSize);
// compact('paginationReview');
// compact('pagination');
return $this->render('PanasonicTestEtAvisBundle:Product:show.html.twig', array(
'paginationTest' => $paginationTest,
'paginationReview' => $paginationReview
));
Ошибка проявляется только тогда, когда я прохожу как пагинацию (paginationTest & paginationReview), если я прохожу только один работает безупречно.
Любой может сказать мне, как я могу решить эту проблему?
Спасибо, это решает проблему. После поиска файлов knp-компонентов (Paginatior.php) Я обнаружил, что для сортировки я должен установить 'sortFieldParameterName' => "sort1", "sortDirectionParameterName" => "direction1". Хорошо работает сейчас :) – Rishi
Я просто использую ваше решение для этой проблемы, но хотя я и сделал все, как вы объяснили, я все равно получаю те же сообщения об ошибках, что и @Rishi. Любые идеи? – sonja
Привет, Соня. Я не использовал этот пакет некоторое время, но, угадывая ответ TekMi ниже, я думаю, возможно, вам также нужно установить параметры «sortFieldParameterName» и/или «sortDirectionParameterName», а также другое «pageParameterName», как упоминалось Андреем. – Rishi