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 相关文章推荐
收集的DedeCMS一些使用经验
Mar 17 PHP
PHP MySQL应用中使用XOR运算加密算法分享
Aug 28 PHP
关于PHP模板Smarty的初级使用方法以及心得分享
Jun 21 PHP
PHP中spl_autoload_register函数的用法总结
Nov 07 PHP
CI(CodeIgniter)框架介绍
Jun 09 PHP
php生成xml时添加CDATA标签的方法
Oct 17 PHP
php去除头尾空格的2种方法
Mar 16 PHP
php给一组指定关键词添加span标签的方法
Mar 31 PHP
php返回当前日期或者指定日期是周几
May 21 PHP
基于php的CMS中展示文章类实例分析
Jun 18 PHP
WordPress中用于获取搜索表单的PHP函数使用解析
Jan 05 PHP
PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
Aug 11 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文件上传实例详解!!!
2007/01/02 PHP
file_get_contents(&quot;php://input&quot;, &quot;r&quot;)实例介绍
2013/07/01 PHP
PHP中HTML标签过滤技巧
2014/01/07 PHP
Thinkphp5.0 框架Model模型简单用法分析
2019/10/11 PHP
jQuery大于号(&gt;)选择器的作用解释
2015/01/13 Javascript
Javascript数组操作函数总结
2015/02/05 Javascript
jQuery解决input超多的表单提交
2015/08/10 Javascript
HTML5之WebSocket入门3 -通信模型socket.io
2015/08/21 Javascript
jquery+json实现动态商品内容展示的方法
2016/01/14 Javascript
jquery.validate提示错误信息位置方法
2016/01/22 Javascript
jQuery Validate验证框架详解(推荐)
2016/12/17 Javascript
详解nodejs中的process进程
2017/03/19 NodeJs
JS+Canvas绘制动态时钟效果
2017/11/10 Javascript
jQuery发请求传输中文参数乱码问题的解决方案
2018/05/22 jQuery
JavaScript事件对象event用法分析
2018/07/27 Javascript
js+html5 canvas实现ps钢笔抠图
2019/04/28 Javascript
JS实现躲避粒子小游戏
2020/06/18 Javascript
js中实现继承的五种方法
2021/01/25 Javascript
python self,cls,decorator的理解
2009/07/13 Python
基于Django的python验证码(实例讲解)
2017/10/23 Python
TensorFlow 滑动平均的示例代码
2018/06/19 Python
使用python将图片格式转换为ico格式的示例
2018/10/22 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
2019/05/07 Python
关于numpy.where()函数 返回值的解释
2019/12/06 Python
Python自动化xpath实现自动抢票抢货
2020/09/19 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
2020/09/29 Python
Java servlet面试题
2012/03/04 面试题
学习全国两会精神心得体会范文
2014/03/17 职场文书
党员学习党的群众路线思想汇报(5篇)
2014/09/10 职场文书
法定代表人授权委托书
2014/09/19 职场文书
2014年库房工作总结
2014/11/26 职场文书
2014年乡镇团委工作总结
2014/12/18 职场文书
介绍信范文
2015/01/31 职场文书
国庆放假通知怎么写
2015/07/30 职场文书
二年级数学教学反思
2016/02/16 职场文书
关于艺术节的开幕致辞
2016/03/04 职场文书