分析接口
- 请求方式:查询,肯定是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); } }
最后修改:2019 年 12 月 15 日 10 : 36 PM