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
snoopy PHP版的网络客户端提供本地下载
Apr 15 PHP
PHP中的生成XML文件的4种方法分享
Oct 06 PHP
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
Nov 19 PHP
win7系统配置php+Apache+mysql环境的方法
Aug 21 PHP
php实现阳历阴历互转的方法
Oct 28 PHP
PHP常见错误提示含义解释(实用!值得收藏)
Apr 25 PHP
thinkphp跨库操作的简单代码实例
Sep 22 PHP
PHP获取数组中指定的一列实例
Dec 27 PHP
PHP设计模式之建造者模式定义与用法简单示例
Aug 13 PHP
Laravel框架控制器,视图及模型操作图文详解
Dec 04 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实现多站点共用session实现单点登录的方法详解
2019/09/18 PHP
js利用与或运算符优先级实现if else条件判断表达式
2010/04/15 Javascript
JavaScript中“基本类型”之争小结
2013/01/03 Javascript
js数组Array sort方法使用深入分析
2013/02/21 Javascript
js+csss实现的一个带复选框的下拉框
2014/09/29 Javascript
浅谈 javascript 事件处理
2015/01/04 Javascript
jquery中checkbox使用方法简单实例演示
2015/11/24 Javascript
js表单中选择框值的获取及表单的序列化
2015/12/17 Javascript
Angular.JS中指令ng-if的注意事项小结
2017/06/21 Javascript
Babel 入门教程学习笔记
2018/06/13 Javascript
微信小程序的部署方法步骤
2018/09/04 Javascript
构建一个JavaScript插件系统
2020/10/20 Javascript
nuxt 实现在其它js文件中使用store的方式
2020/11/05 Javascript
Jquery+javascript实现支付网页数字键盘
2020/12/21 jQuery
python3使用tkinter实现ui界面简单实例
2014/01/10 Python
python中stdout输出不缓存的设置方法
2014/05/29 Python
Python的Django框架中if标签的相关使用
2015/07/15 Python
Python计算字符宽度的方法
2016/06/14 Python
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
2018/05/11 Python
python操作excel的方法
2018/08/16 Python
Python2.7实现多进程下开发多线程示例
2019/05/31 Python
Flask框架实现的前端RSA加密与后端Python解密功能详解
2019/08/13 Python
python实现高斯(Gauss)迭代法的例子
2019/11/20 Python
python实现加密的方式总结
2020/01/19 Python
详解Pycharm出现out of memory的终极解决方法
2020/03/03 Python
Django Form常用功能及代码示例
2020/10/13 Python
BIBLOO捷克:购买女装、男装、童装、鞋和配件
2017/01/27 全球购物
美国网上鞋子零售商:Dr. Scholl’s Shoes
2017/11/17 全球购物
给导游的表扬信
2014/01/10 职场文书
房地产项目建议书
2014/03/12 职场文书
电影建国大业观后感
2015/06/01 职场文书
干部理论学习心得体会
2016/01/21 职场文书
2016年党员干部公开承诺书
2016/03/24 职场文书
导游词之广西漓江
2019/11/02 职场文书
MySQL官方导出工具mysqlpump的使用
2021/05/21 MySQL
Go结合Gin导出Mysql数据到Excel表格
2022/08/05 Golang