laravel与分页

来源:互联网 发布:实用新型专利 软件 编辑:程序博客网 时间:2024/06/05 20:47

如果你只需要在分页视图中简单的显示“下一个”和“上一个”链接,可以使用simplePaginate方法来执行该查询。在渲染包含大数据集的视图且不需要显示每个页码时非常有用:

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

手动创建分页器

有时候你可能想要通过传递数组数据来手动创建分页实例,你可以基于自己的需求通过创建Illuminate\Pagination\PaginatorIlluminate\Pagination\LengthAwarePaginator实例来实现。

Paginator类不需要知道结果集中数据项的总数;然而,正因如此,该类也没有提供获取最后一页索引的方法。

LengthAwarePaginator接收参数和Paginator几乎一样,只是,它要求传入结果集的总数。

换句话说,Paginator 对应simplePaginate方法,而LengthAwarePaginator对应paginate方法。

当手动创建分页器实例的时候,应该手动对传递到分页器的结果集进行“切片”,如果你不确定怎么做,查看PHP函数array_slice。


在视图中显示分页结果

当你调用查询构建器或Eloquent查询上的paginatesimplePaginate方法时,你将会获取一个分页器实例。当调用paginate方法时,你将获取Illuminate\Pagination\LengthAwarePaginator,而调用方法simplePaginate时,将会获取Illuminate\Pagination\Paginator实例。这些对象提供相关方法描述这些结果集,除了这些帮助函数外,分页器实例本身就是迭代器,可以像数组一样对其进行循环调用。

所以,获取到结果后,可以按如下方式使用Blade显示这些结果并渲染页面链接:

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

0 0
原创粉丝点击