[ laravel分页 ] laravel5.*带参数分页,自定义分页,获取总数以及列参数用法详解
Song •
6259 次浏览 •
0个评论 •
2018年02月26日
laravel
可以轻松实现分页,具体可以参考Laravel 的分页功能,但是有些时候我们除非仔细读一次文档,不能快速查看。
一、如何使用laravel分页
有几种方法可以对项目进行分页。最简单的是在查询语句构造器
或Eloquent
查询 中使用paginate
方法。
$tests = DB::table('tests')->where('id','>',5)->paginate(5);
你对数据库可以进行任何查询操作,取值的时候你用paginate
即可,数字代表的是每页个数。目前,Laravel
无法有效执行使用groupBy
语句的分页操作。如果你需要在一个分页结果集中使用groupBy
,建议你查询数据库并手动创建分页器。
<div class="container">
@forelse($tests as $test)
{{ $test->id }}
@empty
没有记录
@endforelse
</div>
{{ $tests->links() }}
二、带参数分页(即附加参数到分页链接中)
当我们需要附加参数到分页链接中时,使用方法与普通方法相同,只需要把参数数组append
到分页中即可:
public function test(Request $request)
{
$condition=$request->all();
// 根据条件查找数据
$test=DB::table('tests')->where('id',$request->id)->paginate(5);
// 把搜索参数回传
return view('test',['tests'=>$tests,'condition'=>$condition]);
}
接下来添加参数到链接中:
{!! $tests->appends($condition)->render() !!}
这样我们代参数分页成功,如果想修改样式,可以查看:laravel修改分页样式并且把«和»改成上一页下一页
三、AJAX分页以及将结果转换为JSON
有时候我们使用AJAX
分页以及将结果转换为JSON
,我们只需要使用toJson
即可:
$tests = DB::table('tests')->where('id','>',5)->paginate(5)->toJson();
四、分页器实例方法
有时候我们会需要获取总数据,上一页和下一页,可以参考:
$tests->count() //当前页显示个数
$tests->currentPage() //当前页数
$tests->hasMorePages() //判断是不是还有更多页,比如最后一页她就不显示,不然就显示1
$tests->lastPage() //最后一页,也是总页数(在 simplePaginate 中无法使用)
$tests->nextPageUrl() //下一页的连接
$tests->perPage() //定义的每页个数
$tests->previousPageUrl() //上一页连接
$tests->total() //总数据量,就是总记录数(在 simplePaginate 中无法使用)
$tests->url($page) //$page是你想跳转到的页数,你也可以同时用获取总页数,然后用url定义到最后一页是吧
-
laravel中distinct()的使用方法与去重 2017-09-11
-
Laravel将view缓存为静态html,laravel页面静态缓存 2021-10-09
-
[ laravel爬虫实战--基础篇 ] guzzle描述与安装 2017-11-01
-
[ 配置教程 ] 在ubuntu16.04中部署LNMP环境(php7+maridb且开启maridb远程以及nginx多域名访问 )并配置laravel环境 2017-07-18
-
laravel11如何启用routes/api.php无状态路由 2025-03-06
热门文章
-
laravel11如何启用routes/api.php无状态路由 2025-03-06
-
oppo手机默认浏览器urlscheme 2025-02-13
-
mysql如何给运营人员添加只有查询权限的账号 2024-12-02
-
Mac 安装mysql并且配置密码 2024-11-20
-
阿里云不同账号(跨账号)ECS服务器同地域如何实现免费内网互通? 2024-11-12
更多相关好文