tp5.1分页接口


分析接口

  • 请求方式:查询,肯定是Get
  • 请求路径:分页查询,/api/item/brand/page
  • 请求参数:根据我们刚才编写的页面,有分页功能,有排序功能,有搜索过滤功能,因此至少要有5个参数:

    • page:当前页,int
    • rows:每页大小,int
    • sortBy:排序字段,String
    • desc:是否为降序,boolean
    • key:搜索关键词,String
    http://local.leyou.com/api/item/brand/page?page=1&rows=5&sortBy=id&desc=true
  • 响应结果:分页结果一般至少需要两个数据

    • total:总条数
    • items:当前页数据
    • totalPage:有些还需要总页数
<?php

namespace app\api\controller;

use app\api\model\Brands;
use think\Controller;
use think\Request;

class Brand extends Controller
{
    //分页方法
    public function page(Request $request){
        //dump($request->param());
        //当前页
        $page = $request->param('page',1);
        //显示多少条数据
        $rows = $request->param('rows',5);
        //排序字段
        $sort = $request->param('sortBy','id');
        //排序方式,传的值是布尔desc=true,默认从小到大
        $desc = $request->param('desc','asc');
        //为true则倒序,false顺序
        $desc = ($desc==true) ? 'desc':'asc';
        $key = $request->param('key','');
        //调用模型获取数据
        $items = Brands::whereLike('letter',"%{$key}%")
            ->page($page,$rows)
            ->order($sort,$desc)
            ->select();
        //1.总记录数
        $total  = Brands::count();
        //dump($total);
        //2.总页码
        $totalPage = ceil($total/$rows);
        $data = [
            'total' =>$total,
            'items' => $items,
            'totalPage' => $totalPage
        ];
        return json($data);
    }
}

 

效果
1.PNG

 最后修改:2019 年 12 月 15 日 10 : 36 PM


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM