thinkPHP5分页功能实现方法分析


Posted in PHP onOctober 25, 2017

本文实例讲述了thinkPHP5分页功能实现方法。分享给大家供大家参考,具体如下:

其实分页自身的内容也不是很多。不过牵扯到样式的问题感觉挺烦。于是找到了分页类看了一下。把大体的结构说一下。如果有需要修改页面样式的可以自行修改样式。最好提前备份,防止意外。

首先是分页的调用,tp5的调用相对非常容易

$mod = new \app\index\model\Blogmsg();
$mo = $mod->paginate(1,14);
$this->assign('list', $mo);
// 渲染模板输出
return $this->fetch('list');
//模板方面
<div>
<ul>
{volist name='list' id='user'}
<li> {$user.nickname}</li>
{/volist}
</ul>
</div>
{$list->render()}

函数的第一个参数是每一页显示几个,第二个参数是总共显示多少页。

(本来有10页,你只写5页,那么6-10页是不会显示的,但是地址栏该参数还是可以跳转过去获取对应的内容…)

thinkPHP5分页功能实现方法分析

默认的是这样的效果。不过这是在bootstrap模板下才有的效果。专门根据bootstrap的特点做的命名。

也就是说,在其他的模板下,只是单纯的数字。

分页的文件的位置在thinkphp\library\think\paginator里。
driver里有一个分页样式的原版。直接改不利于后期维护。而且tp5也给你一个非常方便的修改方法。文件夹内源文件复制粘贴重新命名。然后改一句话class Bootstrap extends Paginator中的Bootstrap改成文件的名字。再去config.php里找到分页相关的配置。

'type' => 'bootstrap',改成你的文件名字。就可以直接调用了。

我把几个牵扯到样式的函数名称列出来,简单的说一下存在的意义。

render()渲染分页,大白话就是这个分页类的主体。

return sprintf(
  '<ul class="pagination">%s %s %s</ul>',
  $this->getPreviousButton(),
  $this->getLinks(),
  $this->getNextButton()
);

这里就牵扯到css的样式,可以根据自己的需要替换。

页码自身没有首页和尾页单项。(但是函数为你提供了尾页的值)
可以自己去做一个填写。复制getNextButton()进行相关的修改就可以了。

getNextButton()函数里会看见另外两个函数

getAvailablePageWrapper(url,page)getDisabledTextWrapper($text)

刚刚的渲染函数是可以理解为箱体,这两个函数可以理解为按钮了。想改样式在这里该就行了。能做到这里的都不会有太大的问题。

getLinks()则是管中间的。看代码基本是也能看出来大体意思。修改分页基本从这些地方着手就可以了。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php 代码优化的42条建议 推荐
Sep 25 PHP
PHP strtotime函数详解
Dec 18 PHP
PHP中全面阻止SQL注入式攻击分析小结
Jan 30 PHP
php 解压rar文件及zip文件的方法
May 05 PHP
php采用file_get_contents代替使用curl实例
Nov 07 PHP
php eval函数一句话木马代码
May 21 PHP
隐性调用php程序的方法
Jun 13 PHP
PHP实现图片自动清理的方法
Jul 08 PHP
详解PHP中的null合并运算符
Dec 30 PHP
java微信开发之上传下载多媒体文件
Jun 24 PHP
php删除数组指定元素实现代码
May 03 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
Nov 17 PHP
thinkPHP框架中执行原生SQL语句的方法
Oct 25 #PHP
php调用云片网接口发送短信的实现方法
Oct 25 #PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
Oct 25 #PHP
Laravel学习教程之request validation的编写
Oct 25 #PHP
Yii2框架实现登录、退出及自动登录功能的方法详解
Oct 24 #PHP
Yii2.0实现生成二维码功能实例
Oct 24 #PHP
完美的php分页类
Oct 24 #PHP
You might like
php设置编码格式的方法
2013/03/05 PHP
smarty模板的使用方法实例分析
2019/09/18 PHP
PhpSpreadsheet设置单元格常用操作汇总
2020/11/13 PHP
改善你的jQuery的25个步骤 千倍级效率提升
2010/02/11 Javascript
VBS通过WMI监视注册表变动的代码
2011/10/27 Javascript
JS使用ajax从xml文件动态获取数据显示的方法
2015/03/24 Javascript
JavaScript中数组的合并以及排序实现示例
2015/10/24 Javascript
JavaScript事件详细讲解
2016/06/27 Javascript
用JavaScript和jQuery实现瀑布流
2017/03/19 Javascript
微信小程序 request接口的封装实例代码
2017/04/26 Javascript
详解Vue.js之视图和数据的双向绑定(v-model)
2017/06/23 Javascript
javascript  数组排序与对象排序的实例
2017/07/17 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
2018/02/21 Javascript
JS实现的DOM插入节点操作示例
2018/04/04 Javascript
vue-swiper的使用教程
2018/08/30 Javascript
layui 点击重置按钮, select 并没有被重置的解决方法
2019/09/03 Javascript
layui type2 通过url给iframe子页面传值的例子
2019/09/06 Javascript
微信小程序如何实现五星评价功能
2019/10/15 Javascript
mpvue微信小程序开发之实现一个弹幕评论
2019/11/24 Javascript
Vue-CLI与Vuex使用方法实例分析
2020/01/06 Javascript
Vue的状态管理vuex使用方法详解
2020/02/05 Javascript
[03:58]兄弟们,回来开黑了!DOTA2昔日战友招募宣传视频
2016/07/17 DOTA
Python threading多线程编程实例
2014/09/18 Python
Python实现二叉搜索树
2016/02/03 Python
深入理解Python爬虫代理池服务
2018/02/28 Python
Python统计单词出现的次数
2018/04/04 Python
简单了解Python生成器是什么
2019/07/02 Python
西班牙英格列斯百货官网:El Corte Inglés
2016/09/25 全球购物
外语专业毕业生个人的自荐信
2013/11/19 职场文书
信息系统专业个人求职信范文
2013/12/07 职场文书
生产部厂长职位说明书
2014/03/03 职场文书
教师思想作风整顿个人剖析材料
2014/10/10 职场文书
2014年环境卫生工作总结
2014/11/24 职场文书
骨干教师申报材料
2014/12/17 职场文书
社区端午节活动总结
2015/02/11 职场文书
沂蒙六姐妹观后感
2015/06/08 职场文书