thinkphp5 api开发(thinkphp5框架前后端分离项目实现分页功能的方法分析)
thinkphp5 api开发
thinkphp5框架前后端分离项目实现分页功能的方法分析本文实例讲述了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"
}
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/flysnownet/article/details/93624845
- mysql的分页原理(mysql分页的limit参数简单示例)
- mssql 存储过程查询语句(MSSQL分页存储过程完整示例支持多表分页存储)
- vue加element ui弹窗(Vue中ElementUI分页组件Pagination的使用方法)
- dedecms表单格式(DedeCMS arclist的分页使用教程)
- mysql提高分页效率(MySQL优化教程之超大分页查询)
- sqlserver小结(基于sqlserver的四种分页方式总结)
- react 分页列表优化(使用react-beautiful-dnd实现列表间拖拽踩坑)
- dedecms列表分页无法显示(dedecms 5.6 分页样式代码修改方法)
- dedecms的自由列表管理(dedecms TAG标签列表分页链接优化方法)
- dedecms频道封面不能修改内容(DEDECMS内容页分页过多、过长问题最佳解决方案)
- sqlserver创建带参数的存储过程(SQLServer存储过程实现单条件分页)
- js实现分页
- dedecms循环栏目(dedecms 栏目列表分页链接优化)
- tp5框架源码分析(tp5框架无刷新分页实现方法分析)
- yii框架使用教程(Yii框架分页技术实例分析)
- sqlserver存储过程同步数据(SQL Server存储过程同时返回分页结果集和总数)
- 2020年大众7.5代高尔夫R终结特别版 最后的呐喊(2020年大众7.5代高尔夫R终结特别版)
- 七年前的这部剧有毒,全剧只有女主红到发紫,男主至今无人认识(七年前的这部剧有毒)
- 宋轶除了演过于曼丽,原来还演过一个青楼女子(宋轶除了演过于曼丽)
- 赵丽颖第一部当女主的戏,主角配角个个都是实力演员(赵丽颖第一部当女主的戏)
- 乾隆为何这么喜爱白塔原因是什么(乾隆为何这么喜爱白塔原因是什么)
- 逐渐消失的东北八大怪现象,进步的社会里我们遗失的是什么(逐渐消失的东北八大怪现象)
热门推荐
- python3正则表达式详解(Python正则表达式和re库知识点总结)
- laravel获取数据(laravel框架添加数据,显示数据,返回成功值的方法)
- sqlserver2016的安装(Sql Server2016 正式版安装程序图解教程)
- css选择器使用时需要注意哪些方面(CSS选择器的新用法推荐)
- mysql 快速迁移到历史表(MySQL 线上日志库迁移实例)
- laravel开发api支持多少并发(laravel框架 api自定义全局异常处理方法)
- 如何提高软件开发团队效率
- python常用的属性和方法(Python进阶之@property动态属性的实现)
- sqlserver使用简介(SQL Server Page结构深入分析)
- mysql存储json的方式(MySQL中查询json格式的字段实例详解)