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 include的妙用,实现路径加密
Jul 29 PHP
php数组函数序列 之shuffle()和array_rand() 随机函数使用介绍
Oct 29 PHP
PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码
Apr 08 PHP
关于php正则匹配汉字的方法介绍
Apr 25 PHP
浅谈thinkphp的实例化模型
Jan 04 PHP
php构造方法中析构方法在继承中的表现
Apr 12 PHP
PHP中addslashes与mysql_escape_string的区别分析
Apr 25 PHP
浅谈PHP eval()函数定义和用法
Jun 21 PHP
Linux平台PHP5.4设置FPM线程数量的方法
Nov 09 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
Jan 17 PHP
详解php curl带有csrf-token验证模拟提交方法
Apr 18 PHP
php面试中关于面向对象的相关问题
Feb 13 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 模拟$_PUT实现代码
2010/03/15 PHP
解析PHP中如何将数组变量写入文件
2013/06/06 PHP
Linux下安装PHP MSSQL扩展教程
2014/10/24 PHP
php数组合并与拆分实例分析
2015/06/12 PHP
prototype1.4中文手册
2006/09/22 Javascript
asp.net下使用jquery 的ajax+WebService+json 实现无刷新取后台值的实现代码
2010/09/19 Javascript
使用JavaScript检测Firefox浏览器是否启用了Firebug的代码
2010/12/28 Javascript
jquery.tmpl JQuery模板插件
2011/10/10 Javascript
JS生成某个范围的随机数【四种情况详解】
2016/04/20 Javascript
为Jquery EasyUI 组件加上清除功能的方法(详解)
2017/04/13 jQuery
详解vue.js的事件处理器v-on:click
2017/06/27 Javascript
基于构造函数的五种继承方法小结
2017/07/27 Javascript
react native带索引的城市列表组件的实例代码
2017/08/08 Javascript
react-native fetch的具体使用方法
2017/11/01 Javascript
浅谈React 服务器端渲染的使用
2018/05/08 Javascript
基于Angularjs-router动态改变Title值的问题
2018/08/30 Javascript
JavaScript中this用法学习笔记
2019/03/17 Javascript
Python写的Tkinter程序屏幕居中方法
2015/03/10 Python
Django的models中on_delete参数详解
2019/07/16 Python
python之MSE、MAE、RMSE的使用
2020/02/24 Python
python中sklearn的pipeline模块实例详解
2020/05/21 Python
受希腊女神灵感的晚礼服、鸡尾酒礼服和婚纱:THEIA
2018/04/15 全球购物
什么是事务?事务有哪些性质?
2012/03/11 面试题
工作自荐信
2013/12/11 职场文书
党支部书记岗位责任制
2014/02/11 职场文书
卖车协议书
2014/04/21 职场文书
酒店端午节活动方案
2014/08/26 职场文书
大学新生军训自我鉴定范文
2014/09/13 职场文书
2014年发展党员工作总结
2014/11/12 职场文书
市场部经理岗位职责
2015/02/02 职场文书
关于国庆节的广播稿
2015/08/19 职场文书
2016道德模范先进事迹材料
2016/02/26 职场文书
Nginx反爬虫策略,防止UA抓取网站
2021/03/31 Servers
PHP实现两种排课方式
2021/06/26 PHP
mysql中数据库覆盖导入的几种方式总结
2022/03/25 MySQL
golang为什么要统一错误处理
2022/04/03 Golang