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维护文件系统
Oct 09 PHP
网站当前的在线人数
Oct 09 PHP
linux下为php添加curl扩展的方法
Jul 29 PHP
PHP的构造方法,析构方法和this关键字详细介绍
Oct 22 PHP
PHP使用ob_start生成html页面的方法
Nov 07 PHP
PHP实现中文圆形印章特效
Jun 19 PHP
yii实现使用CUploadedFile上传文件的方法
Dec 28 PHP
PHP的Yii框架中View视图的使用进阶
Mar 29 PHP
Zend Framework上传文件重命名的实现方法
Nov 25 PHP
Laravel接收前端ajax传来的数据的实例代码
Jul 20 PHP
PHP实现的mysql读写分离操作示例
May 22 PHP
Yii2语言国际化自动配置详解
Aug 22 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 ImageMagick windows下安装教程
2015/01/26 PHP
使用PHP生成二维码的方法汇总
2015/07/22 PHP
PHP+mysql防止SQL注入的方法小结
2019/04/27 PHP
Laravel-添加后台模板AdminLte的实现方法
2019/10/08 PHP
Prototype1.5 rc2版指南最后一篇之Position
2007/01/10 Javascript
jQuery Clone Bug解决代码
2010/12/22 Javascript
jQuery的初始化与对象构建之浅析
2011/04/12 Javascript
基于jquery实现的表格分页实现代码
2011/06/21 Javascript
页面加载完成后再执行JS的jquery写法以及区别说明
2014/02/22 Javascript
基于iframe实现类似于ajax的页面无刷新
2014/05/31 Javascript
jquery实现多条件筛选特效代码分享
2015/08/28 Javascript
浅析node连接数据库(express+mysql)
2015/11/30 Javascript
深入理解Angularjs中的$resource服务
2016/12/31 Javascript
利用Javascript实现简单的转盘抽奖
2017/02/13 Javascript
jQuery实现消息弹出框效果
2019/12/10 jQuery
vue2.0实现列表数据增加和删除
2020/06/17 Javascript
在Python的列表中利用remove()方法删除元素的教程
2015/05/21 Python
Python中条件判断语句的简单使用方法
2015/08/21 Python
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
2018/06/13 Python
Anaconda2 5.2.0安装使用图文教程
2018/09/19 Python
python获取微信企业号打卡数据并生成windows计划任务
2019/04/30 Python
Python实现非正太分布的异常值检测方式
2019/12/09 Python
Python和Anaconda和Pycharm安装教程图文详解
2020/02/04 Python
pytorch dataloader 取batch_size时候出现bug的解决方式
2020/02/20 Python
matplotlib之多边形选区(PolygonSelector)的使用
2021/02/24 Python
CSS3 边框效果
2019/11/04 HTML / CSS
详解canvas.toDataURL()报错的解决方案全都在这了
2020/03/31 HTML / CSS
意大利综合购物网站:Giordano Shop
2016/10/21 全球购物
2014年党员公开承诺践诺书
2014/03/25 职场文书
党的群众路线教育学习材料
2014/05/12 职场文书
中国梦演讲稿3分钟
2014/08/19 职场文书
个人股份转让协议书范本
2015/01/28 职场文书
小学语文国培研修日志
2015/11/13 职场文书
调研报告的主要写法
2019/04/18 职场文书
Go语言 详解net的tcp服务
2022/04/14 Golang
Nginx 502 bad gateway错误解决的九种方案及原因
2022/08/14 Servers