欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

laravel 框架自定义手动分页功能包

最编程 2024-05-06 10:52:15
...

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

哈喽,大家好,今天为大家分享的是laravel自定义手动分页的函数封装

有小伙伴要问了,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() }}

好了,本次laravel分页函数封装教程到这里就结束,大家有学习到吗?

感谢大家的持续关注,我会还在后期不断的分享自己工作中遇到的各种问题和解决思路,做一个记录,也做一个分享,大家共同进步。记得关注我哦~

喜欢技术的朋友可以关注微信公众号:倒腾怪,里面会分享一些使用的软件,也会不定时分享一些技术文章,一定要记得关注哦!!!

上一篇: Plumed 分子模拟后分析

下一篇:

推荐阅读