为了简单起见,我有一个数组,$ matches,在我的控制器中包含我的结果。通常情况下,我会返回一个视图,传递该数组。
return View::make('results', compact('matches'));
但是,我想在视图中对这些结果进行分页。
@foreach ($matches as $match)
...
@endforeach
// Paginate matches here!
似乎Laravel建立的分页不适用于阵列。我无法找到任何显示如何执行此操作的资源。任何帮助将不胜感激!
答案 0 :(得分:11)
我最终使用以下代码。您必须手动传递每页的项目。 $matches
是传递给分页器的数据数组。
$perPage = 2;
$currentPage = Input::get('page') - 1;
$pagedData = array_slice($matches, $currentPage * $perPage, $perPage);
$matches = Paginator::make($pagedData, count($matches), $perPage);
答案 1 :(得分:1)
您可以手动创建分页器,它们可以使用数组:
$paginator = Paginator::make($items, $totalItems, $perPage);
答案 2 :(得分:1)
如果您想手动分页,这是最好的答案。当您的查询包含distinct()时,这很有用。
$matches = DB::table('...')->where('...')->distict()->get();
$perPage = 2;
$currentPage = Input::get('page', 1) - 1;
$pagedData = array_slice($matches, $currentPage * $perPage, $perPage);
$matches = Paginator::make($pagedData, count($matches), $perPage);