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 a simple smtp class
Nov 26 PHP
有关JSON以及JSON在PHP中的应用
Apr 09 PHP
php将数据库导出成excel的方法
May 07 PHP
PHPMYADMIN导入数据最大为2M的解决方法
Apr 23 PHP
memcache一致性hash的php实现方法
Mar 05 PHP
php添加数据到xml文件的简单例子
Sep 08 PHP
中高级PHP程序员应该掌握哪些技术?
Sep 23 PHP
php 微信公众平台开发模式实现多客服的实例代码
Nov 07 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
May 11 PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
Sep 29 PHP
解决laravel 表单提交-POST 异常的问题
Oct 15 PHP
详解thinkphp的Auth类认证
May 28 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中的stdClass类
2014/04/18 PHP
typecho插件编写教程(四):插件挂载
2015/05/28 PHP
PHP对文件夹递归执行chmod命令的方法
2015/06/19 PHP
jquery获取多个checkbox的值异步提交给php的方法
2015/06/24 PHP
学习php设计模式 php实现建造者模式
2015/12/07 PHP
php微信公众号开发之现金红包
2018/04/16 PHP
PHP获取ttf格式文件字体名的方法示例
2019/03/06 PHP
图片连续滚动代码[兼容IE/firefox]
2009/06/11 Javascript
jquery 操作DOM的基本用法分享
2012/04/05 Javascript
javascript控制层显示或隐藏的方法
2015/07/22 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
2015/09/24 Javascript
JS把内容动态插入到DIV的实现方法
2016/07/19 Javascript
JS动态加载脚本并执行回调操作
2016/08/24 Javascript
BootStrap入门教程(三)之响应式原理
2016/09/19 Javascript
Vue.js第二天学习笔记(vue-router)
2016/12/01 Javascript
jQuery使用Layer弹出层插件闪退问题
2016/12/22 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
2018/03/25 jQuery
微信小程序开发之改变data中数组或对象的某一属性值
2018/07/05 Javascript
使用ECharts实现状态区间图
2018/10/25 Javascript
原生js中运算符及流程控制示例详解
2021/01/05 Javascript
[02:28]DOTA2亚洲邀请赛附加赛 RECAP赛事回顾
2015/01/29 DOTA
用Python展示动态规则法用以解决重叠子问题的示例
2015/04/02 Python
Python中return self的用法详解
2018/07/27 Python
Python 移动光标位置的方法
2019/01/20 Python
Python参数传递机制传值和传引用原理详解
2020/05/22 Python
PyCharm中关于安装第三方包的三个建议
2020/09/17 Python
python用tkinter实现一个gui的翻译工具
2020/10/26 Python
Python用Jira库来操作Jira
2020/12/28 Python
HTML5注册表单的自动聚焦与占位文本示例代码
2013/07/19 HTML / CSS
HTML5 Canvas实现烟花绽放特效
2016/03/02 HTML / CSS
先进班级集体事迹材料
2014/01/30 职场文书
我的梦想演讲稿
2014/04/30 职场文书
视光学专业自荐信
2014/06/24 职场文书
关于读书的演讲稿300字
2014/08/27 职场文书
毕业生班级鉴定评语
2015/01/04 职场文书
Vue项目中如何封装axios(统一管理http请求)
2021/05/02 Vue.js