您的位置:首页 > 编程学习 > > 正文

thinkphp5 api开发(thinkphp5框架前后端分离项目实现分页功能的方法分析)

更多 时间:2021-10-16 00:54:39 类别:编程学习 浏览量:1658

thinkphp5 api开发

thinkphp5框架前后端分离项目实现分页功能的方法分析

本文实例讲述了thinkphp5框架前后端分离项目实现分页功能的方法。分享给大家供大家参考,具体如下:

方法一

利用tp5提供的paginate方法实现自动分页

参数

page第几页,paginate分页方法会自动获取

size  每页数量

代码

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • /**
  • * Notes:消费记录
  • * Date: 2019/6/25
  • * Time: 15:43
  • * @param Request $request
  • * @return \think\response\Json
  • */
  • public function getMyConsumeLog(Request $request)
  • {
  •     global $_W;
  •     $size = $request->param('size', 6);
  •     $list = $this->model->getListByMid($_W['user']['id'],$size);
  •     return json(['data' => $list, 'error' => 0, 'message' => 'success']);
  • }
  • public function getListByMid($mid,$size = 10){
  •     $res = $this
  •       ->alias('c')
  •       ->field('c.*,b.book_name,b.book_flash,s.section_title')
  •       ->leftJoin('booksection s','c.chapter_id = s.id')
  •       ->leftJoin('book b','s.book_id = b.id')
  •       ->where('c.mid',$mid)
  •       ->order('c.id desc')
  •       ->paginate($size);
  •     return $res;
  • }
  • 返回数据

    {
        "data": {
            "total": 1,
            "per_page": 1,
            "current_page": 1,
            "last_page": 1,
            "data": [
                {
                    "id": 105,
                    "mid": 55,
                    "book_id": 31,
                    "chapter_id": 46046,
                    "score": 27,
                    "create_time": 1561447448,
                    "book_name": "桃运村支书",
                    "book_flash": "https://cdnxiaoshuo.t.com/FiO6TM0N4kpzKB7tqrDko64ZS4H4",
                    "section_title": "第29章 康庄大道"
                }
            ]
        },
        "error": 0,
        "message": "success"
    }

    方法二

    利用limit方法

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • $curr_page = $request->param('page', 1);
  •     $size = $request->param('size', 6);
  • $list = $consume_model->getListByWhere($curr_page, $size, $where);
  •     $num = $consume_model->getListByWhereCount($where);
  •     return json(['data' => $list,'num' => $num,'error' => 0, 'message' => 'success']);
  • public function getListByWhere($curr_page,$limit = 10,$where = null){
  •     $res = $this
  •       ->alias('c')
  •       ->field('c.*,b.book_name,s.section_title')
  •       ->leftJoin('booksection s','c.chapter_id = s.id')
  •       ->leftJoin('book b','s.book_id = b.id')
  •       ->where($where)
  •       ->order('c.id desc')
  •       ->limit($limit*($curr_page - 1),$limit)
  •       ->select()
  •       ->toArray();
  •     return $res;
  • }
  • public function getListByWhereCount($where = null){
  •     $count = $this
  •       ->alias('c')
  •       ->where($where)
  •       ->count();
  •     return $count;
  • }
  • 返回值

    {
        "data": [
            {
                "id": 2,
                "mid": 4,
                "book_id": 4,
                "chapter_id": 22,
                "score": 30,
                "create_time": 0,
                "book_name": "复仇者联盟I",
                "section_title": "第11章  你是睡"
            },
            {
                "id": 1,
                "mid": 4,
                "book_id": 29,
                "chapter_id": 34,
                "score": 20,
                "create_time": 1598999,
                "book_name": "复仇者联盟II",
                "section_title": "第11章  你是睡"
            }
        ],
        "num": 2,
        "total_coin": 50,
        "error": 0,
        "message": "success"
    }

    希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

    原文链接:https://blog.csdn.net/flysnownet/article/details/93624845

    标签:分页 thinkphp5
    您可能感兴趣