thinkphp5带条件分页
生活随笔
收集整理的這篇文章主要介紹了
thinkphp5带条件分页
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一、問題
ThinkPHP5 由于分頁引擎和之前的版本完全是重構了,今天在用分頁的時候突然發(fā)現(xiàn),之前很簡便的帶條件分頁竟然不好用了。
之前只要是get傳遞的參數(shù),在分頁之后在 ?page=x 參數(shù)的補充的時候會自動進行url的獲取。
- 我之前使用的是 /id/123/key/xxx/?page=1 這樣的形式的url
但是TP5無法做到。
二、解決
最坑的是文檔中沒有提到這一點。。。
我是使用?paginate()?函數(shù),這個函數(shù)在 Db 或者是 Model 上都是適用的,因此對于使用 Db 還是 Model 沒有什么大的影響。
關鍵在于 paginate() 是有三個參數(shù):
- 第一個參數(shù)是?$listRows [int],也就是當前的頁數(shù)
- 第二個參數(shù)是?$simple [boolean], 是否簡潔模式或者總記錄數(shù)
- 第三個參數(shù)是?$config [array],配置參數(shù)
而第三個參數(shù)中是最關鍵的:
/*** 分頁查詢* @param int|array $listRows 每頁數(shù)量 數(shù)組表示配置參數(shù)* @param int|bool $simple 是否簡潔模式或者總記錄數(shù)* @param array $config 配置參數(shù)* page:當前頁,* path:url路徑,* query:url額外參數(shù),* fragment:url錨點,* var_page:分頁變量,* list_rows:每頁數(shù)量* type:分頁類名* @return \think\Paginator* @throws DbException*/public function paginate($listRows = null, $simple = false, $config = []){}解決辦法就是利用 $config 中的 query 參數(shù),來設置額外變量
三、代碼
舉個例子:
- 查詢的時候,使用的條件是?status = 1; 因此我傳遞的參數(shù)是?xxx.html?status = 1;
- url中有一個 type 參數(shù)是額外的,不用再數(shù)據(jù)庫查詢中,但是url都需要這個參數(shù)?xxx.html?status=1&type=1
四、效果
可以看到,當點擊分頁頁碼的時候,會有額外的url參數(shù)出現(xiàn),從而能夠繼續(xù)按照相關的條件邏輯進行分頁。
來源:http://www.ptbird.cn/thinkphp5-key-pagination.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的thinkphp5带条件分页的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Thinkphp5 分页带参数(亲测)
- 下一篇: 开美容美甲店要多少钱 小成本创业的首选