У меня есть страница, которая отображает 6 пунктов (учреждения в моем случае) в каждом разбитом на страницы разделе (следовательно, на каждой странице).Я отображаю элементы в случайном порядке, используя shuffle
.Я использую Symfony 4 и Pagerfanta для нумерации страниц.Проблема, с которой я сталкиваюсь, заключается в том, что каждый раз, когда я перехожу на следующую страницу, мой запрос снова перетасовывается.Рандомизация порядка - не проблема, проблема в том, что это происходит каждый раз, когда пользователь переходит на следующую страницу.Это должно происходить только на первой странице и оставаться в таком порядке.Я прочитал подобный вопрос здесь, но проблема в том, что все решения, по-видимому, подразумевают совершенно новый paginator.Есть ли способ использовать оба пагерфанта и решить мою проблему?
Мой код прямо сейчас:
InstitutionController.php
// I query for the list of items (institutions)
$q = $request->query->get('q');
$query = $institutionRepository->searchAndSortPublished($q);
// I randomize the order of institutions
shuffle($query);
$pagerfanta = $paginationHelper->paginate($request, $query, 6);
return $this->render('institution/index.html.twig', [ 'paginator' => $pagerfanta, 'institutions' => $query, 'q' => $q]);
PaginationHelper.php
//...
public function paginate($request, $array, $maxPerPage = 10)
{
$page = $request->query->get('page', 1);
$adapter = new ArrayAdapter($array);
$pagerfanta = new Pagerfanta($adapter);
$pagerfanta->setMaxPerPage($maxPerPage);
$pagerfanta->setCurrentPage($page);
return $pagerfanta;
}
Живой пример моей проблемы