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
- 小程序实现左右滑动窗口(小程序实现分页效果)
- thinkphp5.0实例详解(ThinkPHP5&5.1框架关联模型分页操作示例)
- oracle和mysql查询所有表(Oracle、MySQL和SqlServe三种数据库分页查询语句的区别介绍)
- python yield 使用浅析(yii框架使用分页的方法分析)
- jquery ajax详细教程(jquery+Ajax实现简单分页条效果)
- mysql的limit的分页使用(获取 MySQL innodb B+tree 的高度的方法)
- asp.net自定义分页控件
- yii框架使用教程(Yii框架分页技术实例分析)
- vueelementui表格操作(Vue组件库ElementUI实现表格列表分页效果)
- react自适应布局如何实现(React实现分页效果)
- mssql 存储过程查询语句(MSSQL分页存储过程完整示例支持多表分页存储)
- sqlserver修改排序规则几种方法(SQL Server 分页编号的另一种方式推荐)
- dedecms列表分页无法显示(dedecms 5.6 分页样式代码修改方法)
- sqlserver存储过程同步数据(SQL Server存储过程同时返回分页结果集和总数)
- redis新增数据分页(Scrapy-Redis结合POST请求获取数据的方法示例)
- sqlserver数据库如何分页(SQL server分页的4种方法示例很全面)
- 乔欣首演古装大女主,颜值演技双在线(乔欣首演古装大女主)
- 于正又推女性古装大剧 杨蓉乔欣演女配,两位女主成 重头戏(于正又推女性古装大剧)
- 乔欣古装女主戏获热度 作为女主,却没吃到红利(乔欣古装女主戏获热度)
- 爱情是什么(爱情是什么最经典的话)
- 乔欣 古装剧中的高颜值(古装剧中的高颜值)
- 怎么才可以财富自由(如何让自己实现财富自由)
热门推荐
- sql server还原数据库时提示数据库正在使用
- dedecms迁移data验证码不显示(dedecms织梦上传图片302Error错误的解决方法)
- php 上传临时文件扩展名(浅析PHP 中move_uploaded_file 上传中文文件名失败)
- python语言案例教程单元测试(Python单元和文档测试实例详解)
- 使用docker对集群进行管理(使用docker搭建kong集群操作)
- vue的路由模式有几种(Vue 路由返回恢复页面状态的操作方法)
- docker容器退出错误码的步骤(docker容器退出错误码的步骤)
- 虚拟云服务器如何安装宝塔(云服务器宝塔面板的安装图文教程详解)
- css浮动位置讲解(深入理解css布局之定位与浮动)
- vue实现列表向上滚动更新(vue实现列表无缝滚动)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9