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 相关文章推荐
paypal即时到账php实现代码
Nov 28 PHP
php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
Jul 01 PHP
php中get_headers函数的作用及用法的详细介绍
Apr 27 PHP
PHP return语句另类用法不止是在函数中
Sep 17 PHP
PHP编程开发怎么提高编程效率 提高PHP编程技术
Nov 09 PHP
作为程序员必知的16个最佳PHP库
Dec 09 PHP
win7安装php框架Yii的方法
Jan 25 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
May 19 PHP
Yii2实现增删改查后留在当前页的方法详解
Jan 13 PHP
php支付宝系列之电脑网站支付
May 30 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
Aug 12 PHP
thinkphp3.2同时连接两个数据库的简单方法
Aug 13 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的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
2014/09/29 PHP
php 实现进制相互转换
2016/04/07 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
PHP的HTTP客户端Guzzle简单使用方法分析
2019/10/30 PHP
JavaScript 动态添加表格行 使用模板、标记
2009/10/24 Javascript
GWT中复制到剪贴板 js+flash实现复制 兼容性比较好
2010/03/07 Javascript
js 创建快捷方式的代码(fso)
2010/11/19 Javascript
jQuery 复合选择器应用的几个例子
2014/09/11 Javascript
JavaScript分页功能的实现方法
2015/04/25 Javascript
纯javascript实现分页(两种方法)
2015/08/26 Javascript
jQuery基本选择器(实例及表单域value的获取方法)
2016/05/20 Javascript
JS实现将Asp.Net的DateTime Json类型转换为标准时间的方法
2016/08/02 Javascript
vue-router跳转页面的方法
2017/02/09 Javascript
node.js平台下利用cookie实现记住密码登陆(Express+Ejs+Mysql)
2017/04/26 Javascript
详解AngularJS之$window窗口对象
2018/01/17 Javascript
vue init webpack myproject构建项目 ip不能访问的解决方法
2018/03/20 Javascript
jQuery插件jsonview展示json数据
2018/05/26 jQuery
学习RxJS之JavaScript框架Cycle.js
2019/06/17 Javascript
判断“命令按钮”是否被鼠标单击详解
2019/07/31 Javascript
利用python模拟sql语句对员工表格进行增删改查
2017/07/05 Python
Python+matplotlib实现华丽的文本框演示代码
2018/01/22 Python
python sys,os,time模块的使用(包括时间格式的各种转换)
2018/04/27 Python
python 统计列表中不同元素的数量方法
2018/06/29 Python
python装饰器使用实例详解
2019/12/14 Python
windows python3安装Jupyter Notebooks教程
2020/04/13 Python
python批量修改交换机密码的示例
2020/09/22 Python
多视角3D可旋转的HTML5 Logo动画
2016/03/02 HTML / CSS
行政管理专业推荐信
2013/11/02 职场文书
环境工程专业个人求职信
2013/12/05 职场文书
中专药剂专业应届毕的自我评价
2013/12/27 职场文书
军训考核自我鉴定
2014/02/13 职场文书
离职证明标准格式
2014/09/15 职场文书
班主任先进事迹材料
2014/12/17 职场文书
一年级语文下册复习计划
2015/01/17 职场文书
中学总务处工作总结
2015/08/12 职场文书
情感电台广播稿
2015/08/18 职场文书