ThinkPHP6帶搜索條件的分頁解決方案

thinkphp6中,實現分頁不難,實現搜索也不難,但是帶搜索條件的搜索卻難倒很多人。同樣的情況下,我們把tp5的代碼搬過來,發現并不好使,那么ThinkPHP6帶搜索條件的分頁應該如何解決呢?

我們看下具體情景,我搜索了一個關鍵字,并且選擇了分類進行文章的搜索篩選。

一、查找問題

首先我們先看下帶搜索條件的第一頁:

ThinkPHP6帶搜索條件的分頁解決方案

然后我們再看下第二頁:

立即學習PHP免費學習筆記(深入)”;

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帶搜索條件的分頁“這個問題完美解決了,其實遇到問題不要怕,我們先仔細看看手冊,說不定就能解決我們遇到的難題。

【相關推薦】

1.?【干貨】ThinkPHP6對接微信掃碼登錄

2.?【干貨】ThinkPHP6對接微信掃碼登錄

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享