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

网友投稿 432 2022-07-21

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

方法一

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

参数

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

size  每页数量

代码

/**

* 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方法

$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"

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:PHP进阶学习之垃圾回收机制详解(php7垃圾回收机制)
下一篇:PHP7 安装event扩展的实现方法(PHp7.0后端原生前端)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~