thinkPHP5-後端之分頁
阿新 • • 發佈:2019-01-04
這是使用者列表分頁方法,在控制器裡寫
#獲取引數 $data = self::$config; #判斷是否有輸入當前頁和每頁條數,否則預設值 $curr = isset($data['curr'])?$data['curr']:1; $limits = isset($data['limits'])?$data['limits']:10; #判斷是否有關鍵字、職位、啟用狀態的篩選或搜尋 $keyword = isset($data['keyword'])?$data['keyword']:''; $roleid = isset($data['roleid'])?$data['roleid']:''; $status = isset($data['status'])?$data['status']:''; #搜尋條件 $where = 'del=1'; $where .= $keyword?' and CONCAT(username,realname) like "%'.$keyword.'%"':'';#賬號和真實姓名搜尋 $where .= $roleid?' and roleid='.$roleid:''; #職位篩選 $where .= $status?' and status='.$status:''; #啟用狀態篩選 #分頁 $total = Db::name('member')->where($where)->count();#獲取總條數 $pages = ceil($total/$limits);#頁數必須是整數 if($curr > $pages){ $curr = $pages; } #返回列表欄位 $field = 'id,username,realname,roleid,departmentid,status,email,phone'; $list = Db::name('member')->field($field)->where($where)->page($curr,$limits)->select(); #結果 $result = [ 'list' => $list, #每頁內容 'total' => $total, #總條數 'curr' => $curr, #當前頁 'limits' => $limits, #每頁顯示數量 'pages' => $pages #總頁數 ]; return ['code'=>200,'msg'=>config('msg.200'),'data'=>$result];
最後,返回的陣列如“結果”所示
知識點補充:
1.intval()函式,用於獲取變數的整數值,如當前頁和每頁條數,應該取整數值
2.trim()函式,移除字串兩邊的空白字元和其他預定義的字元
ltrim()函式,移除字串左邊的空白字元和其他預定義的字元
rtrim()函式,移除字串右邊的空白字元和其他預定義的字元
3.ceil()函式,向上舍入最近的整數,如2.1,2.9,最終輸出得 3
4.floor()函式,向下舍入最近的證書,如2.1,2.9,最終輸出得 2
5.round()函式,對浮點數進行四捨五入