怎么在laravel中手动创建一个数组分页

  介绍

怎么在laravel中手动创建一个数组分页?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

<强> laravel分页功能:

有几种方法可以对数据进行分页。最简单的是在[查询语句构造器]或[雄辩的查询]中使用随意翻阅或simplePaginate方法。

用标记法如下:

//控制器中   $ users =, DB:表(& # 39;用户# 39;)→随意翻阅(15);   return 视图(& # 39;user.index& # 39;,,(& # 39;用户# 39;,=祝辞,$用户]);//视图中   {{,美元用户→链接(),}}

效果如下:

"上一页”“1”“2”“3”“下一页”

simplePaginate用法如下:

//控制器中   时间=美元users 用户::(& # 39;投票# 39;,,& # 39;祝辞& # 39;,,100)→simplePaginate (15);   return 视图(& # 39;user.index& # 39;,,紧凑(& # 39;用户# 39;));//视图中   {{,美元用户→链接(),}}

效果如下:

"上一页”“下一页”

注意:

<李>

如果你只需要在分页视图中显示简单的“下一页”和“上一页”的链接,即不需要显示每个页码的链接,更推荐使用simplePaginate方法来执行更高效的查询。

<李>

目前,Laravel无法高效执行使用groupBy语句的分页操作。如果你需要在分页结果集中使用groupBy,建议你查询数据库并手动创建分页器。

有时候可能会遇到这种情况,dataA美元和美元dataB是从数据库取出的两个不同的数据集合,需要同时将dataA美元和美元dataB分配到视图并进行分页展示,那这种情况怎么办呢?

怎么在Laravel中手动创建一个数组分页

<强>这种情况可以采用Laravel数组分页。

其实在Laravel文档中已经有写如何自己使用分页类去分页了,但没有详细说明。

<强>手动创建分页

如果你想手动创建分页实例并且最终得到一个数组类型的结果,可以根据需求来创建IlluminatePaginationPaginator或者IlluminatePaginationLengthAwarePaginator实例来实现。

具体可以看IlluminatePaginationLengthAwarePaginator中的这段代码:

public  function  __construct(项目美元,,,,perPage美元,美元currentPage =, null,, array  options 美元;=,[])   ,{   foreach 才能;(options 美元;as  key 美元;=祝辞,美元值),{   ,,这→美元{$关键},=,美元价值;   ,,}      这个美元才能→total =,总美元;   这个美元才能→perPage =, perPage美元;   这个美元才能→lastPage =,马克斯((int),装天花板(total 美元/,perPage美元),,1);   这→美元才能path =, $ this→path  !==, & # 39;/& # 39;, ?,空白($ this→路径,& # 39;/& # 39;),:,$ this→路径;   这→美元才能currentPage =, $ this→setCurrentPage (currentPage美元,美元这→pageName);   这个美元才能→items =, items 美元;instanceof  Collection  ?, items 美元;,收集::使(项目);   以前,}

以下为具体实现代码:

//控制器中   public  function 指数(LiveService  liveService美元,Request 美元请求)   ,{//才能数据   时间=美元才能dataA 用户:在(& # 39;状态# 39;,,1)→得到()→toArray ();//才能数据B   时间=美元才能dataB 用户:在(& # 39;状态# 39;,,2)→得到()→toArray ();   时间=美元才能data  array_merge (dataA美元,,dataB美元);//当才能前页数,默认1   时间=美元才能page 美元请求→page  ?:, 1;//每才能页的条数   时间=美元才能perPage  4;//计才能算每页分页的初始位置   美元才能offset =, (page 美元;*,perPage美元),安康;perPage美元;   ,,//实例化LengthAwarePaginator类,并传入对应的参数=美元才能data  new  LengthAwarePaginator (array_slice(数据,美元,抵消美元,perPage美元,真的),,count ($ data),, perPage美元,   ,,页面,美元,[& # 39;path & # 39;,=祝辞,请求→美元url(),, & # 39;查询# 39;,=祝辞,美元请求→查询()));   return 才能视图(& # 39;admin.users.index& # 39;,,紧凑(& # 39;数据# 39;));   ,}//视图中   {{,美元数据→链接(),}} 怎么在laravel中手动创建一个数组分页