当前位置:首页 > CMS教程 > Thinkphp > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-12-27 15:17:30 浏览: 评论:0 

这篇文章主要介绍了thinkphp5框架前后端分离项目实现分页功能的方法,结合实例形式分析了thinkPHP5前后端分离项目的分页功能常见实现技巧与操作注意事项,需要的朋友可以参考下。

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

方法一

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

参数

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

size  每页数量

代码

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

返回数据

  1.     "data": { 
  2.         "total": 1, 
  3.         "per_page": 1, 
  4.         "current_page": 1, 
  5.         "last_page": 1, 
  6.         "data": [ 
  7.             { 
  8.                 "id": 105, 
  9.                 "mid": 55, 
  10.                 "book_id": 31, 
  11.                 "chapter_id": 46046, 
  12.                 "score": 27, 
  13.                 "create_time": 1561447448, 
  14.                 "book_name""桃运村支书"
  15.                 "book_flash""https://cdnxiaoshuo.t.com/FiO6TM0N4kpzKB7tqrDko64ZS4H4"
  16.                 "section_title""第29章 康庄大道" 
  17.             } 
  18.         ] 
  19.     }, 
  20.     "error": 0, 
  21.     "message""success" 

方法二

利用limit方法

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

返回值

  1.     "data": [ 
  2.         { 
  3.             "id": 2, 
  4.             "mid": 4, 
  5.             "book_id": 4, 
  6.             "chapter_id": 22, 
  7.             "score": 30, 
  8.             "create_time": 0, 
  9.             "book_name""复仇者联盟I"
  10.             "section_title""第11章  你是睡" 
  11.         }, 
  12.         { 
  13.             "id": 1, 
  14.             "mid": 4, 
  15.             "book_id": 29, 
  16.             "chapter_id": 34, 
  17.             "score": 20, 
  18.             "create_time": 1598999, 
  19.             "book_name""复仇者联盟II"
  20.             "section_title""第11章  你是睡" 
  21.         } 
  22.     ], 
  23.     "num": 2, 
  24.     "total_coin": 50, 
  25.     "error": 0, 
  26.     "message""success" 
  27. }

Tags: thinkphp5前后端分离 thinkphp5分页

分享到:

相关文章