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

吾爱主题 阅读:142 2021-08-26 14:37:00 评论:0

本文实例讲述了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

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容