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图片上传存储源码并且可以预览
Aug 26 PHP
PHP5.3的垃圾回收机制(动态存储分配方案)深入理解
Dec 10 PHP
CentOS 6.3下安装PHP xcache扩展模块笔记
Sep 10 PHP
PHP操作MySQL事务实例
Nov 05 PHP
thinkphp使用literal防止模板标签被解析的方法
Nov 22 PHP
PHP使用array_fill定义多维数组的方法
Mar 18 PHP
PHP执行linux命令常用函数汇总
Feb 02 PHP
详解php中空字符串和0之间的关系
Oct 23 PHP
php使用curl_init()和curl_multi_init()多线程的速度比较详解
Aug 15 PHP
php中文语义分析实现方法示例
Sep 28 PHP
laravel清除视图缓存的代码
Oct 23 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 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 翻页 实例代码
2009/08/07 PHP
ThinkPHP控制器间实现相互调用的方法
2014/10/31 PHP
PHP单链表的实现代码
2016/07/05 PHP
php对象工厂类完整示例
2018/08/09 PHP
Js 订制自己的AlertBox(信息提示框)
2009/01/09 Javascript
Javascript学习笔记5 类和对象
2010/01/11 Javascript
离开页面时检测表单元素是否被修改,提示保存的js代码
2010/08/25 Javascript
window.onload和$(function(){})的区别介绍
2013/10/30 Javascript
详解jquery中$.ajax方法提交表单
2014/11/03 Javascript
node.js中的fs.chown方法使用说明
2014/12/16 Javascript
3个可以改善用户体验的AngularJS指令介绍
2015/06/18 Javascript
jqueryMobile使用示例分享
2016/01/12 Javascript
xtemplate node.js 的使用方法实例解析
2016/08/22 Javascript
jQuery的deferred对象使用详解
2016/09/25 Javascript
JS动态计算移动端rem的解决方案
2016/10/14 Javascript
vue双花括号的使用方法 附练习题
2017/11/07 Javascript
jQuery与vue实现拖动验证码功能
2018/01/30 jQuery
Cocos2d实现刮刮卡效果
2018/12/20 Javascript
解决新建一个vue项目过程中遇到的问题
2020/10/22 Javascript
举例介绍Python中的25个隐藏特性
2015/03/30 Python
举例讲解Python中字典的合并值相加与异或对比
2016/06/04 Python
TensorFlow模型保存和提取的方法
2018/03/08 Python
selenium在执行phantomjs的API并获取执行结果的方法
2018/12/17 Python
python实现植物大战僵尸游戏实例代码
2019/06/10 Python
django重新生成数据库中的某张表方法
2019/08/28 Python
Django Admin中增加导出CSV功能过程解析
2019/09/04 Python
解决安装pyqt5之后无法打开spyder的问题
2019/12/13 Python
深入理解Python 多线程
2020/06/16 Python
Python爬取豆瓣数据实现过程解析
2020/10/27 Python
Python实现FTP文件定时自动下载的步骤
2020/12/19 Python
车间工艺员岗位职责
2013/12/09 职场文书
手机促销活动方案
2014/02/05 职场文书
2015年司法所工作总结
2015/04/27 职场文书
初一语文教学反思
2016/03/03 职场文书
html5调用摄像头实例代码
2021/06/28 HTML / CSS
代码复现python目标检测yolo3详解预测
2022/05/06 Python