在ThinkPHP6中,實(shí)現(xiàn)分頁不難,實(shí)現(xiàn)搜索也不難,但是帶搜索條件的搜索卻難倒很多人。同樣的情況下,我們把tp5的代碼搬過來,發(fā)現(xiàn)并不好使,那么ThinkPHP6帶搜索條件的分頁應(yīng)該如何解決呢?
我們看下具體情景,我搜索了一個(gè)關(guān)鍵字,并且選擇了分類進(jìn)行文章的搜索篩選。
一、查找問題
首先我們先看下帶搜索條件的第一頁:
然后我們?cè)倏聪碌诙摚?/p>
仔細(xì)的小伙伴會(huì)發(fā)現(xiàn),在第二頁、第三頁的時(shí)候URL中沒有帶搜索條件。
二、如何解決:
問題關(guān)鍵已經(jīng)找到了,那么如何解決呢?我們先去官網(wǎng)手冊(cè)找一找:
在手冊(cè)中,有個(gè)query 的項(xiàng)是負(fù)責(zé)url額外參數(shù)傳遞的,那這樣就好辦了。
直接看代碼:
$where=[];//篩選條件數(shù)組 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,//每頁數(shù)量 'query' => request()->param(), ]);
這樣我們就把”ThinkPHP6帶搜索條件的分頁“這個(gè)問題完美解決了,其實(shí)遇到問題不要怕,我們先仔細(xì)看看手冊(cè),說不定就能解決我們遇到的難題。
【