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 相关文章推荐
zf框架的db类select查询器join链表使用示例(zend框架)
Mar 14 PHP
实用的PHP带公钥加密类分享(每次加密结果都不一样哦)
Aug 20 PHP
关于URL最大长度限制的相关资料查证
Dec 23 PHP
php检查日期函数checkdate用法实例
Mar 19 PHP
PHP实现获取中英文首字母
Jun 19 PHP
8个PHP数组面试题
Jun 23 PHP
php实现的简易扫雷游戏实例
Jul 09 PHP
PHP生成短网址方法汇总
Jul 12 PHP
详解如何在云服务器上部署Laravel
Jun 30 PHP
laravel实现查询最后执行的一条sql语句的方法
Oct 09 PHP
laravel框架 api自定义全局异常处理方法
Oct 11 PHP
PHP执行linux命令6个函数代码实例
Nov 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+mysql开源XNA 聚合程序发布 下载
2007/07/13 PHP
php获取地址栏信息的代码
2008/10/08 PHP
PHP内存缓存Memcached类实例
2014/12/08 PHP
php中switch与ifelse的效率区别及适用情况分析
2015/02/12 PHP
PHP常用函数总结(180多个)
2016/12/25 PHP
php中分页及SqlHelper类用法实例
2017/01/12 PHP
js 模拟气泡屏保效果代码
2010/07/10 Javascript
JavaScript中的property和attribute介绍
2011/12/26 Javascript
javaScript复制功能调用实现方案
2012/12/13 Javascript
sencha touch 模仿tabpanel导航栏TabBar的实例代码
2013/10/24 Javascript
JS实现简单的键盘打字的效果
2015/04/24 Javascript
javascript实现自动输出文本(打字特效)
2015/08/27 Javascript
seajs加载jquery时提示$ is not a function该怎么解决
2015/10/23 Javascript
JS实现来回出现文字的状态栏特效代码
2015/10/31 Javascript
详解如何实现一个简单的Node.js脚手架
2017/12/04 Javascript
vue.js实现点击后动态添加class及删除同级class的实现代码
2018/04/04 Javascript
vue-router重定向不刷新问题的解决
2018/06/25 Javascript
JavaScript原型链与继承操作实例总结
2018/08/24 Javascript
解决vue自定义全局消息框组件问题
2019/11/22 Javascript
python thread 并发且顺序运行示例
2009/04/09 Python
python一键升级所有pip package的方法
2017/01/16 Python
浅谈python中的实例方法、类方法和静态方法
2017/02/17 Python
python3利用Dlib19.7实现人脸68个特征点标定
2018/02/26 Python
python实现电子产品商店
2019/02/26 Python
python爬虫解决验证码的思路及示例
2019/08/01 Python
Django基于Models定制Admin后台实现过程解析
2020/11/11 Python
HTML5 语音搜索只需一句代码
2013/01/03 HTML / CSS
HTML5拖放效果的实现代码
2016/11/17 HTML / CSS
美国最大的宠物用品零售商:PetSmart
2016/11/14 全球购物
goodhealth官方海外旗舰店:新西兰国民营养师
2017/12/15 全球购物
First Aid Beauty官网:FAB急救面霜
2018/05/24 全球购物
乌克兰鞋类购物网站:Eobuv.com.ua
2020/11/28 全球购物
座谈会主持词
2014/03/20 职场文书
收银员岗位职责
2015/02/03 职场文书
2015员工年度考核评语
2015/03/25 职场文书
网络妈妈观后感
2015/06/08 职场文书