您的位置:首页 > 编程语言 > PHP开发

laravel与分页

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

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




手动创建分页器

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

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

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

换句话说,
Paginator

对应
simplePaginate
方法,而
LengthAwarePaginator
对应
paginate
方法。

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



在视图中显示分页结果

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

所以,获取到结果后,可以按如下方式使用Blade显示这些结果并渲染页面链接:
<div class="container">
@foreach ($users as $user)
{{ $user->name }}
@endforeach
</div>

{!! $users->render() !!}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: