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基础知识:类与对象(5) static
Dec 13 PHP
php源代码安装常见错误与解决办法分享
May 28 PHP
jQuery+php实现ajax文件即时上传的详解
Jun 17 PHP
PHP迭代器的内部执行过程详解
Nov 12 PHP
php中自定义函数dump查看数组信息类似var_dump
Jan 27 PHP
php解析xml方法实例详解
May 12 PHP
PHP数据库表操作的封装类及用法实例详解
Jul 12 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
Jul 13 PHP
Laravel中的Auth模块详解
Aug 17 PHP
php使用curl_init()和curl_multi_init()多线程的速度比较详解
Aug 15 PHP
php+Ajax无刷新验证用户名操作实例详解
Mar 04 PHP
laravel model 两表联查示例
Oct 24 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 dirname()与__FILE__常量的应用
2013/06/24 PHP
php实现把数组按指定的个数分隔
2014/02/17 PHP
php延迟静态绑定实例分析
2015/02/08 PHP
php简单计算页面加载时间的方法
2015/06/19 PHP
php基于session实现数据库交互的类实例
2015/08/03 PHP
Yii框架布局文件的动态切换操作示例
2019/11/11 PHP
javascript 面向对象继承
2009/11/26 Javascript
JavaScript初学者应注意的七个细节小结
2012/01/30 Javascript
用jquery统计子菜单的条数示例代码
2013/10/18 Javascript
js中的setInterval和setTimeout使用实例
2014/05/09 Javascript
JavaScript中pop()方法的使用教程
2015/06/09 Javascript
Javascript实现图片轮播效果(一)让图片跳动起来
2016/02/17 Javascript
jQuery 利用$.ajax 时获取原生XMLHttpRequest 对象的方法
2016/08/25 Javascript
jQuery中get方法用法分析
2016/12/07 Javascript
JS简单实现滑动加载数据的方法示例
2017/10/18 Javascript
nodejs+mongodb+vue前后台配置ueditor的示例代码
2018/01/02 NodeJs
React Native中Mobx的使用方法详解
2018/12/04 Javascript
Vue.js 中的实用工具方法【推荐】
2019/07/04 Javascript
详解如何在Javascript中使用Object.freeze()
2020/10/18 Javascript
Django 多语言教程的实现(i18n)
2018/07/07 Python
利用Python将每日一句定时推送至微信的实现方法
2018/08/13 Python
pyqt实现.ui文件批量转换为对应.py文件脚本
2019/06/19 Python
python区块及区块链的开发详解
2019/07/03 Python
关于Python形参打包与解包小技巧分享
2019/08/24 Python
Pycharm 2019 破解激活方法图文详解
2019/10/11 Python
python操作toml文件的示例代码
2020/11/27 Python
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
介绍一下linux的文件权限
2012/02/15 面试题
最新优秀教师个人先进事迹材料
2014/05/06 职场文书
十八大演讲稿
2014/05/22 职场文书
英雄儿女观后感
2015/06/09 职场文书
现实表现证明材料
2015/06/19 职场文书
感恩教师主题班会
2015/08/12 职场文书
小学语文的各类谚语(70首)
2019/08/15 职场文书
python实现MD5进行文件去重的示例代码
2021/07/09 Python
手写实现JS中的new
2021/11/07 Javascript