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 相关文章推荐
类的另类用法--数据的封装
Oct 09 PHP
如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量的
Mar 06 PHP
PHP 程序员的调试技术小结
Nov 15 PHP
php下网站防IP攻击代码,超级实用
Oct 24 PHP
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
Dec 25 PHP
PHP5中Cookie与 Session使用详解
Apr 30 PHP
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
Jun 19 PHP
PHP使用mysql_fetch_row查询获得数据行列表的方法
Mar 18 PHP
浅谈php错误提示及查错方法
Jul 14 PHP
浅谈PHP的反射机制
Dec 15 PHP
php中通用的excel导出方法实例
Dec 30 PHP
php中上传文件的的解决方案
Sep 25 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
手把手教你使用DedeCms的采集的图文教程
2007/03/11 PHP
WIN8.1下搭建PHP5.6环境
2015/04/29 PHP
PHP 常用的header头部定义汇总
2015/06/19 PHP
PHP实现获取某个月份周次信息的方法
2015/08/11 PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
2016/12/27 PHP
php 访问oracle 存储过程实例详解
2017/01/08 PHP
php+ajax实现文件切割上传功能示例
2020/03/03 PHP
javascript 读取XML数据,在页面中展现、编辑、保存的实现
2009/10/27 Javascript
jQuery图片预加载 等比缩放实现代码
2011/10/04 Javascript
js中 关于undefined和null的区别介绍
2013/04/16 Javascript
JavaScript实现自动变换表格边框颜色
2015/05/08 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
2015/08/04 Javascript
使用jquery/js获取iframe父子级、同级获取元素的方法
2016/08/05 Javascript
Node.js中使用mongoose操作mongodb数据库的方法
2017/09/12 Javascript
JavaScript分步实现一个出生日期的正则表达式
2018/03/22 Javascript
基于vue如何发布一个npm包的方法步骤
2019/05/15 Javascript
Angular之jwt令牌身份验证的实现
2020/02/14 Javascript
使用vue实现通过变量动态拼接url
2020/07/22 Javascript
你眼中的Python大牛 应该都有这份书单
2017/10/31 Python
python递归函数绘制分形树的方法
2018/06/22 Python
使用pandas把某一列的字符值转换为数字的实例
2019/01/29 Python
Python Unittest原理及基本使用方法
2020/11/06 Python
python FTP编程基础入门
2021/02/27 Python
瑞贝卡·明可弗包包官网:Rebecca Minkoff
2016/07/21 全球购物
给儿子的表扬信
2014/01/15 职场文书
医院辞职信范文
2014/01/17 职场文书
班长竞选演讲稿
2014/04/24 职场文书
大学生求职信例文
2014/06/29 职场文书
中标通知书格式
2015/04/17 职场文书
病房管理制度范本
2015/08/06 职场文书
小学生运动会广播
2015/08/19 职场文书
小学二年级班主任工作经验交流材料
2015/11/02 职场文书
小学运动会开幕词
2016/03/04 职场文书
python实现的人脸识别打卡系统
2021/05/08 Python
为Java项目添加Redis缓存的方法
2021/05/18 Redis
《月歌。》宣布制作10周年纪念剧场版《RABBITS KINGDOM THE MOVIE》
2022/04/02 日漫