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入门的学习方法
Jan 02 PHP
PHP中遍历stdclass object的实现代码
Jun 09 PHP
用来解析.htgroup文件的PHP类
Sep 05 PHP
PHP实现下载功能的代码
Sep 29 PHP
smarty中英文多编码字符截取乱码问题解决方法
Oct 28 PHP
PHP四舍五入、取整、round函数使用示例
Feb 06 PHP
php实现猴子选大王问题算法实例
Apr 20 PHP
PHP结合jQuery实现找回密码
Jul 22 PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
Sep 30 PHP
PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法
Aug 11 PHP
thinkphp5框架调用其它控制器方法 实现自定义跳转界面功能示例
Jul 03 PHP
laravel框架实现去掉URL中index.php的方法
Oct 12 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中的正规表达式(二)
2006/10/09 PHP
php下用cookie统计用户访问网页次数的代码
2010/05/09 PHP
php判断页面是否是微信打开的示例(微信打开网页)
2014/04/25 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
2014/05/12 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
2014/08/19 PHP
php获取网页里所有图片并存入数组的方法
2015/04/06 PHP
Yii框架扩展CGridView增加导出CSV功能的方法
2017/05/24 PHP
PHP实现关键字搜索后描红功能示例
2019/07/03 PHP
PHP Ajax跨域问题解决方案代码实例
2020/08/01 PHP
javascript学习之闭包分析
2010/12/02 Javascript
JavaScript中两个感叹号的作用说明
2011/12/28 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
2016/09/09 Javascript
原生JS实现层叠轮播图
2017/05/17 Javascript
基于VUE选择上传图片并页面显示(图片可删除)
2017/05/25 Javascript
AngularJS+Bootstrap3多级导航菜单的实现代码
2017/08/16 Javascript
Windows下Node.js安装及环境配置方法
2017/09/18 Javascript
vue动态绑定组件子父组件多表单验证功能的实现代码
2018/05/14 Javascript
Vue源码解读之Component组件注册的实现
2018/08/24 Javascript
JS+CSS3实现的简易钟表效果示例
2019/04/13 Javascript
Vue分页插件的前后端配置与使用
2019/10/09 Javascript
15分钟上手vue3.0(小结)
2020/05/20 Javascript
vue中template的三种写法示例
2020/10/21 Javascript
vue中axios封装使用的完整教程
2021/03/03 Vue.js
[03:21]辉夜杯主赛事 12月25日TOP5
2015/12/26 DOTA
Python实现计算文件夹下.h和.cpp文件的总行数
2015/04/23 Python
Keras - GPU ID 和显存占用设定步骤
2020/06/22 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
旅游管理毕业生自荐信
2013/11/05 职场文书
办公室文书岗位职责
2013/12/16 职场文书
技校个人求职信范文
2014/01/25 职场文书
幼儿园的门卫岗位职责
2014/04/10 职场文书
优秀管理者事迹材料
2014/05/22 职场文书
人力资源管理求职信
2014/08/07 职场文书
小学运动会演讲稿
2014/08/25 职场文书
2015年学生会纪检部工作总结
2015/03/31 职场文书
幼儿园老师工作总结2015
2015/05/22 职场文书