包子

木森技术分享

路漫漫其修远兮,吾将上下而求索。

您现在的位置是:网站首页 > THINKPHP

ThinkPHP6带搜索条件的分页解决方案

2022-04-18 19:59:33332

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

  一、查找问题

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

1588410983150343.jpg1.jpg

  然后我们再看下第二页:

2.jpg

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

  二、如何解决:

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


3.jpg

  在手册中,有个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带搜索条件的分页“这个问题完美解决了,其实遇到问题不要怕,我们先仔细看看手册,说不定就能解决我们遇到的难题。