在laravel里面要完成分页是很简单的,它的思想以前的框架有些不同,以前框架使用的是分页类完成分页,laravel是直接调用模型的分页方法,返回对应的数据和分页的字符串。css
分页类的在框架中的位置(了解):html
案例:使用分页功能实现当前member数据表的分页效果。因为数据量较少,能够考虑每页显示1个记录,重点是分页的效果laravel
回忆/问题:分页效果的实现大体须要哪几个步骤才能实现?框架
a. 查询符合分页条件的总的记录数布局
b. 计算总的页数(总记录数/每页记录数,而且向上取整)url
c. 拼凑分页的连接htm
d. (核心)使用limit语法来限制分页的记录数对象
e. 展现分页的页码和分页数据blog
f. 若是能够,建议去考虑下分页的样式显示问题教程
①建立路由,而且展现简易列表页面(table标签布局)
路由:
建立列表文件:
②编写控制器中的方法代码,实现没有分页的效果(先不考虑分页效果)
③展现数据
无分页展现效果:
④【案例】使用分页展现上述的页面
要求:每页显示一条记录。
在laravel中分页有2个提供者:DB查询构建器,另外可使用模型来实现。
用法基本一致。
以模型为例:
分页的基本语法:
Model::paginate(每页显示的记录数) 一样,paginate和get同样,支持使用where以及orderBy等辅助查询的方法。
不展现分页连接的效果:
在页面中展现分页连接:
语法:{{$保存数据的对象 -> links()}}生成的连接
目前显示效果:
⑤【可选】将页面的提示“>>”和“<<”改为上一页和下一页提示文字
直接改源码文件:
改成提示文字:
注意:可使用simplePaginate()表示简单分页,只有上一页和下一页,没有分页字符串。
例如:$info = Member::orderby('age','desc')->simplePaginate(2);
附:分页数据对象的其余实用方法以下
分页数据对象->count() //当前页数据条数
分页数据对象->currentPage() //当前页码
分页数据对象->firstItem() //当前页第一条数据的序号
分页数据对象->hasMorePages() //是否有后续页码
分页数据对象->lastItem() //当前页最后一条数据的序号
分页数据对象->lastPage() //最后页序号
分页数据对象->nextPageUrl() //下一页的连接地址
分页数据对象->perPage() //每页显示数据条数
分页数据对象->previousPageUrl() //上一页的连接地址
分页数据对象->total() //记录总条数
分页数据对象->url(5) //制做指定页码的连接地址
将页码稍做处理,写的好看点:
样式代码能够百度上寻找:http://www.javashuo.com/article/p-xjjflwuq-db.html
将css代码引入到当前的分页页面,最终显示效果: