1. 程式人生 > >thinkPHP5-後端之分頁

thinkPHP5-後端之分頁

這是使用者列表分頁方法,在控制器裡寫

        #獲取引數
        $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()函式對浮點數進行四捨五入