我有一个页面,在页面的每个分页部分(因此每个页面)上显示 6 个项目(在我的情况下为机构)。我使用 . 以随机顺序显示项目shuffle
。我使用 Symfony 4 和 Pagerfanta 进行分页。我面临的问题是,每次我转到下一页时,我的查询都会再次被打乱。随机化顺序不是问题,问题是每次用户转到下一页时都会发生这种情况。它应该只发生在第一页并保持该顺序。我在这里读过一个类似的问题,但问题是所有解决方案似乎都意味着一个全新的分页器。有没有一种方法可以同时使用 pagerfanta 并解决我的问题?
我现在的代码:
机构控制器.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]);
分页助手.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;
}