视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
ThinkPHP6带搜索条件的分页解决方案
2020-11-03 13:37:35 责编:小采
文档

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

一、查找问题

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

然后我们再看下第二页:

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

二、如何解决:

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

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

【相关推荐】

1. 【干货】ThinkPHP6对接微信扫码登录

2. 使用工厂模式实现Thinkphp6.0接入阿里云短信

下载本文
显示全文
专题