手机版

Laravel手动分页实现方法详解

时间:2021-09-07 来源:互联网 编辑:宝哥软件园 浏览:

本文实例讲述了Laravel手动分页实现方法。分享给大家供大家参考,具体如下:

这里的演示实例基于Laravel的5.2版本

在开发过程中有这么一种情况,你请求Java api获取信息,由于信息较多,需要分页显示拉弗尔官方提供了一个简单的方式paginate($perPage),但是这种方法只适用型号、查询构建器。

今天说下给定一个数组如何实现和标页数方法一样的效果。

查看标页数方法源码

#供应商/laravel/框架/src/照明/数据库/足够/构建器。PHP :480公共函数paginate($ perPage=null,$ columns=[' *],$pageName='page ',$ page=null){ $ query=$ this-to base();$ total=$ query-getcountfregioning();$this-forPage($page=$page?分页器:解析当前页面($pageName),$perPage=$perPage?美元(this-model-getPerPage());返回新的lengtawarepagentator($ this-get($ columns),$total,$perPage,$page,[' path '=paginator : resolveecurrentpath(),' pageName'=$pageName,]);}从上面就可以看出,分页的关键就在于纵向加热器。

长度递增器的构造方法。

public function _ _ construct($ items,$total,$perPage,$currentPage=null,array $ options=[]){ foreach($ options as $ key=$ value){ $ this-{ $ key }=$ value;} $ this-total=$ total;$ this-perPage=$ perPage;$ this-lastPage=(int)ceil($ total/$ perPage);$这个路径=$这个路径!='/' ?rtrim($this-path,'/'): $ this-path;$ this-current page=$ this-set current page($ current page,$ this-lastPage);$ this-items=集合的$ items实例?$ items :集合:3360 make($ items);}其实已经很明白了,假如要分页的数组为

['username'='zhangsan ',' age'=26],['username'='lisi ',' age'=23],['username'='吴王,' age'=62],['username'='刘钊,' age'=46],['username'='wangmazi ',' age'=25],['username'='子兰,' age'=24],['username'='pangzi ',' age'=21],]共七条数据,每页显示3条,共3页

使用照明\分页\长度分页器;使用照亮\分页\分页器;使用照明\ Http \ Request#仅做演示# function user rist(Request $ Request){ $ users=['username'='张三',' age'=26],['username'='lisi ',' age'=23],[' username '='吴王,' age'=62],['username'='刘钊,' age'=46],['username'='wangmazi ',' age'=25],['username'='子兰,' age'=24],['username'='pangzi ',' age '=21]];$ Perpage=3;if($ request-has(' page '){ $ current _ page=$ request-input(' page ');$current_page=$current_page=0?1 :美元current _ page } else { $ current _ page=1;} $ item=array _ slice($ user,($current_page-1)*$perPage,$ perPage);//注释1 $ total=count($ user);$ paginator=新长度awarepagentator($ item,$total,$perPage,$currentPage,[' path '=paginator : resolveecurrentpath(),//注释2 'pageName'='page ',]);$ user list=$ paginator-to array()[' data '];返回视图(' userlist ',compact('userlist ',' paginator '));}上面的代码中的重点是$项目,如果不做注释一处理,得出的是所有七条数据。

注释2处就是设定个要分页的全球资源定位器(统一资源定位符)地址。也可以手动通过$paginator -setPath('路径)设置。

页面中的分页连接也是同样的调用方式:

{{ $paginator-render() }}好了,基本就是这样,有纰漏的地方欢迎指正!

看看最终效果:

更多关于Laravel相关内容感兴趣的读者可查看本站专题: 《Laravel框架入门与进阶教程》 、 《php优秀开发框架总结》 、 《smarty模板入门基础教程》 、 《php日期与时间用法总结》 、 《php面向对象程序设计入门教程》 、 《php字符串(string)用法总结》 、 《php+mysql数据库操作入门教程》 及《php常见数据库操作技巧汇总》

希望本文所述对大家基于Laravel框架的服务器端编程语言(专业超文本预处理器的缩写)程序设计有所帮助。

版权声明:Laravel手动分页实现方法详解是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。