基本用法

数据分页有多种方法。最简单的是使用 查询构造器或者模型的 paginate 方法。paginate 方法根据用户浏览的当前页码,自动提取相应的数据。
方法的唯一参数是你想要在每页显示的记录数。在此例中,我们指定要在每页显示 15 条数据:

  1. public function index()
  2. {
  3. $users = DB::table('users')->paginate(15);
  4. return view('user/index', ['users' => $users]);
  5. }

简单分页

如果你只需要在分页视图中简单地显示「下一页」和「上一页」的链接,你可以使用 simplePaginate 方法来执行更高效地查询。这在数据量很大且不需要在渲染视图时显示每页的页码时非常有用:

$users = DB::table('users')->simplePaginate(15);

显示分页结果

当调用 paginate 方法时,你会得到 Illuminate\Pagination\LengthAwarePaginator 实例,调用 simplePaginate 方法时,你会得到 Illuminate\Pagination\Paginator 实例。当你得到结果后,你可以使用 Blade 模版来显示数据、渲染分页链接:

<div class="container">
    @foreach ($users as $user)
        {{ $user->name }}
    @endforeach
</div>

{{ $users->links() }}

附加参数到分页链接

你可以使用 appends 方法向分页链接中添加查询参数。例如,要在每个分页链接中添加 sort=votes ,你应该这样调用 appends:

{{ $users->appends(['sort' => 'votes'])->links() }}

如果你想要把所有的查询参数值添加到分页链接,可以使用 withQueryString 方法:

{{ $users->withQueryString()->links() }}