laravel框架自定义手动分页函数封装
时间: 2020-06-29来源:OSCHINA
哈喽,大家好,今天为大家分享的是自定义手动分页的函数封装 有小伙伴要问了,laravel框架不是本身就提供了一个分页函数吗?干嘛还要自己在写一个。 因为在做某些需求的时候并不是能够直接进行分页的,而是查出数据之后,还需要做一些逻辑筛选或者合并之类的操作后,才可以进行分页,只有这样才能满足功能需求。
废话不多说,直接看分析: 通过原分页函数进入到了这里,看到其实主要用到的是“LengthAwarePaginator”这个类,所以我将它单独拿出来,重新做了封装,建议将函数放入到公共控制器里,方便随时调用,封装函数如下: // 自定义手动分页函数 public function diypage($request,$list,$prePage=25){ $total =collect($list)->count(); if(isset($request->page)){ $current_page =intval($request->page); $current_page =$current_page<=0?1:$current_page; }else{ $current_page = 1; } $url = $url='http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"]; if(strpos($url,'&page')) $url=str_replace('&page='.$request->page, '',$url); $item =array_slice(collect($list)->toArray(),($current_page-1)*$prePage,$prePage); return new LengthAwarePaginator($item,$total,$prePage,$current_page,[ 'path'=>$url, 'pageName'=>'page' ]); }
以上就是我封装好的函数,直接调用即可,调用方式如下: $list=$this->diypage(Request $request,$alldata,10);
视图调用如下: {{ $list->links() }}
好了,本次分享结束,大家有学到吗?
热门排行