thinkphp5框架前后端分离项目实现分页功能的方法分析
本文实例讲述了thinkphp5框架前后端分离项目实现分页功能的方法。分享给大家供大家参考,具体如下:
方法一
利用tp5提供的paginate方法实现自动分页
参数
page第几页,paginate分页方法会自动获取
size 每页数量
代码
/**
* Notes:消费记录
* Date: 2019/6/25
* Time: 15:43
* @param Request $request
* @return thinkresponseJson
*/
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相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
- 如何使用scikit-learn在Python中生成测试数据集
- OpenStack Neutron之持续测试
- 干货丨 用 Python 进行股票分析
- 小故事:架构师需要做什么?
- 浅谈用Python计算文本BLEU分数
- Fourinone如何实现并行计算和数据库引擎
- 在Python中用一个长短期记忆网络来演示记忆
- CDA数据分析师学习之路第3期 | Spark RDD的转换操作举例
- 通过Temboo实现从Arduino获取雅虎天气信息
- 自动化模式中的MySQL
- 通过Pandas实现快速别致的数据分析
- R语言中的非线性分类
- 用SPSS做数据分析?先弄懂SPSS的基础知识吧
- 学习笔记CB001:NLTK库、语料库、词概率、双连词、词典
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- Android开发重写Animation实现下拉图片后弹射回去效果示例
- Android 中RxPermissions 的使用方法详解
- Android构建Material Design应用详解
- Android中DrawerLayout实现侧滑菜单效果
- Android获取系统储存以及内存信息的方法(一)
- Android开发实现读取excel数据并保存为xml的方法
- 详解Kotlin 中使用和配置 Dagger2
- Android开发使用自定义View将圆角矩形绘制在Canvas上的方法
- Android编程双重单选对话框布局实现与事件监听方法示例
- android调用H5显示加载中效果的示例代码
- Java工作中遇到的问题Method has too many Body parameters的处理办法SpringCloud Feign报错:Method has too many Body par
- Android view滑动悬浮固定效果实现代码示例
- Android编程实现变化的双重选择框功能示例
- Java中使用json存储文件
- Android自定view画圆效果