第一种:查询时实现分页(不能使用groupBy)
$users = App\User::paginate(15); or $users = User::where('votes', '>', 100)->paginate(15); //如果你只需要在分页视图中简单的显示“下一个”和“上一个”链接,可以使用simplePaginate方法来执行该查询User::simplePaginate(15);
第二种:手动创建分页器
有时候你可能想要通过传递数组数据来手动创建分页实例,你可以基于自己的需求通过创建Illuminate\Pagination\Paginator
或Illuminate\Pagination\LengthAwarePaginator
实例来实现。Paginator
类不需要知道结果集中数据项的总数;然而,正因如此,该类也没有提供获取最后一页索引的方法。LengthAwarePaginator
接收参数和Paginator
几乎一样,只是,它要求传入结果集的总数。换句话说,Paginator
对应simplePaginate
方法,而LengthAwarePaginator
对应paginate
方法。当手动创建分页器实例的时候,应该手动对传递到分页器的结果集进行“切片”。
在视图中显示分页结果
@foreach ($users as $user)
{{ $user->name }}
@endforeach
{!! $users->links() !!}
更多函数
$results->count()
$results->currentPage()
$results->firstItem()
$results->hasMorePages()
$results->lastItem()
$results->lastPage() (使用simplePaginate时无效)
$results->nextPageUrl()
$results->perPage()
$results->previousPageUrl()
$results->total() (使用simplePaginate时无效)
$results->url($page)