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的FTP学习(一)[转自奥索]
Oct 09 PHP
建立动态的WML站点(一)
Oct 09 PHP
基于mysql的bbs设计(四)
Oct 09 PHP
php操作SVN版本服务器类代码
Nov 27 PHP
php中fgetcsv()函数用法实例
Nov 28 PHP
php多重接口的实现方法
Jun 20 PHP
php提交post数组参数实例分析
Dec 17 PHP
Laravel 5.3 学习笔记之 安装
Aug 28 PHP
PHP strcmp()和strcasecmp()的区别实例
Nov 05 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 PHP
Laravel 5.1 框架Blade模板引擎用法实例分析
Jan 04 PHP
PHP实现获取文件mime类型多种方法解析
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
vs中通过剪切板循环来循环粘贴不同内容
2011/04/30 PHP
php继承中方法重载(覆盖)的应用场合
2015/02/09 PHP
PHP中isset与array_key_exists的区别实例分析
2015/06/02 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
2016/03/01 PHP
tp5.1 实现setInc字段自动加1
2019/10/18 PHP
JQuery拖动表头边框线调整表格列宽效果代码
2014/09/10 Javascript
JavaScript判断变量是否为空的自定义函数分享
2015/01/31 Javascript
原生js实现移动开发轮播图、相册滑动特效
2015/04/17 Javascript
温习Javascript基础语法之词法结构
2016/05/31 Javascript
基于JS实现仿百度百家主页的轮播图效果
2017/03/06 Javascript
判断div滑动到底部的scroll实例代码
2017/11/15 Javascript
浅谈ajax在jquery中的请求和servlet中的响应
2018/01/22 jQuery
移动端(微信等使用vConsole调试console的方法
2019/03/05 Javascript
解决webpack多页面内存溢出的方法示例
2019/10/08 Javascript
原生JS实现记忆翻牌游戏
2020/07/31 Javascript
Vue父子组件传值的一些坑
2020/09/16 Javascript
pyqt4教程之实现windows窗口小示例分享
2014/03/07 Python
wxPython中文教程入门实例
2014/06/09 Python
在Django的form中使用CSS进行设计的方法
2015/07/18 Python
不可错过的十本Python好书
2017/07/06 Python
对python中数组的del,remove,pop区别详解
2018/11/07 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
2019/09/15 Python
python计算n的阶乘的方法代码
2019/10/25 Python
python GUI计算器的实现
2020/10/09 Python
25个CSS3动画按钮和菜单教程分享
2012/10/03 HTML / CSS
澳大利亚天然护肤品、化妆品和健康产品一站式商店:Nourished Life
2018/12/02 全球购物
匡威爱尔兰官网:Converse爱尔兰
2019/06/09 全球购物
澳大利亚最受欢迎的女士度假服装:Kabana Shop
2020/10/10 全球购物
大专毕业生简历的自我评价
2013/10/20 职场文书
安全生产实施方案
2014/02/23 职场文书
伦敦奥运会口号
2014/06/13 职场文书
庆国庆活动总结
2014/08/28 职场文书
教师作风整顿个人剖析材料
2014/10/10 职场文书
2014年财务工作总结与计划
2014/12/08 职场文书
2016年寒假社会实践活动总结
2015/03/27 职场文书
分享MySQL常用 内核 Debug 几种常见方法
2022/03/17 MySQL