温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ThinkPHP6如何实现带搜索条件的分页

发布时间:2021-01-16 11:32:55 来源:亿速云 阅读:254 作者:小新 栏目:编程语言

这篇文章给大家分享的是有关ThinkPHP6如何实现带搜索条件的分页的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

在ThinkPHP6中,实现分页不难,实现搜索也不难,但是带搜索条件的搜索却难倒很多人。同样的情况下,我们把tp5的代码搬过来,发现并不好使,那么ThinkPHP6带搜索条件的分页应该如何解决呢?

我们看下具体情景,我搜索了一个关键字,并且选择了分类进行文章的搜索筛选。

一、查找问题

首先我们先看下带搜索条件的第一页:

ThinkPHP6如何实现带搜索条件的分页

然后我们再看下第二页:

ThinkPHP6如何实现带搜索条件的分页

仔细的小伙伴会发现,在第二页、第三页的时候URL中没有带搜索条件。

二、如何解决:

问题关键已经找到了,那么如何解决呢?我们先去官网手册找一找:

ThinkPHP6如何实现带搜索条件的分页

在手册中,有个query 的项是负责url额外参数传递的,那这样就好办了。

直接看代码:

$where=[];//筛选条件数组
     if(input('cate_id')){
        $where[] = [
                     ['a.cate_id', '=', $cate_id],
                 ];
     }

     if(input('searchkey')){
        $where[] = [
                     ['title', 'like', '%'.$searchkey.'%'],
                 ];
     }
     $archivesData=Db::name('archives')->alias('a')->
            field('a.id,a.title,a.listorder,b.cate_name,a.time')->
            join('category b','a.cate_id=b.id')->
            where($where)->
            order('a.listorder asc')->//小到大
            order('a.id DESC')->//大-》小
            paginate([
              'list_rows'=> 3,//每页数量
              'query' => request()->param(),
              ]);

这样我们就把”ThinkPHP6带搜索条件的分页“这个问题完美解决了,其实遇到问题不要怕,我们先仔细看看手册,说不定就能解决我们遇到的难题。

感谢各位的阅读!关于“ThinkPHP6如何实现带搜索条件的分页”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI