【ThinkPHP学习】Page分页类学习

thinkphp 分页类源码详细解读(带实例解读) thinkphp的分页类是非常常用的一个类,所以特别详细看了源码记录下来,以方便自己随时复习,这里的thinkphp是3.23的版本,但不管哪个版本万变不离其宗,只要搞懂了源码,换了版本也不会改变本质。 首先把源码的解读放上来,不过由于表述能力问题可能没有那么清晰。 <?php // +-------------------------------------------------- 阅读详情

RT.

续上面的文章读取功能实现,接下来实现文章列表的分页功能。TP已经实现了一个分页类Page.class.php,3.1版本之前的TP Page类位于ThinkPHP扩展文件夹下,目录地址为ThinkPHP/Library/Org/Util/Page.class.php,引入使用,利用TP的import方法,import('ORG.Util.Page')。但是3.2版本之后的ThinkPHP已经将Page.class.php文件移动到了ThinkPHP/Library/Org/Think/Page.class.php,同样,声明使用Page类的方法也变了,变成$Page = new \Think\Page($count, ‘分页条数’);

OK。接下来学习Page类的使用,以文章Article为例子,Article视图中有数据项id,title,title_alias三个数据项,分别存储的是文章ID,文章标题,文章简介。

1:实例化数据对象

$article = M("Article");

2:查询总记录数

$count = $article->count();//直接读取数据表中条项总数
//或者有查询条件
$count = $article->where(查询条件)->count();//查询满足查询条件的条目数

3:实例化分页类

分页类在初始化的时候传入两个参数,一个是显示条数的总数,一个是每次取出的条数。

$Page  = new \Think\Page($count, 10);

4:按照限定的条数,从数据库中读取相应数量的条数

如下,filed()指定从数据库中取出id,title,title_alias三个数据项,并且通过limit()函数限制和记录取出的条目,取完后将其赋给页面:

$list = $article->field('id,title,title_alias')->order('id')->limit($Page->firstRow.','.$Page->listRows)->select();
$this->assign('list',$list);

5:通过show()方法解析$page内容并附值给模板变量,供模板调用:

$show  = $Page->show();
$this->assign('page',$show);

6:通过$this->display()调用模板显示;(display方法用于模板文件的渲染输出,show方法则用于模板内容渲染输出,关于两者的区别:http://doc.thinkphp.cn/manual/template_output.html)

7:在模板中,通过<volist>标签显示内容

<volist name="list" id="list">
   {$list["id"]}{$list["title"]}
   {$list["title_alias"]}
    <br/>
</volist>
{$page}
$list数组中存了对应页码中页面所需要展示的内容,其中包括id,title,title_alias。这三个内容。$page变量中存储了换页的数组以及当前的页面数,两者结合就完成了翻页的功能。


ThinkPHP使用经验分享-分页类Page的应用 PHP 其中,分页类Page是一个非常有用的工具,它可以帮助我们轻松地实现数据的分页功能。通过使用该分页类,你可以轻松地实现数据的分页展示,提升用户体验和数据的可读性。记得根据你的具体需求,调整每页显示的记录数和页面上显示的分页导航样式,以满足你的设计要求。通过以上步骤,我们成功地使用了ThinkPHP的分页类Page来实现文章列表的分页功能。该分页类Page提供了方便的方法来处理分页逻辑,包括计算总记录数、设置当前页码、获取分页数据和生成分页导航等功能。方法获取分页的起始位置和记录数,并通过查询构建器的。 阅读详情

相关推荐

基于 parallels ubuntu 20.04 LTS (focal) 的ros+px4+gazebo 安装

基于 parallels ubuntu 20.04 LTS (focal) 的ros+px4+gazebo 安装。

weixin_40132006的博客 2242

ThinkPHP6 实现分页和分页样式

原因是tp5在组装分页链接的时候,默认是组装bootstrap的分页样式链接,就是说,会自动加上class的属性。在模板视图文件中添加如下 CSS 代码:/* WAP 简洁分页 分页效果 - bootstrap 样式 start */在模板视图文件中添加如下 CSS 代码:/* 前台 完整分页 分页效果 - bootstrap 样式 start */经过测试,在 ThinkPHP6 的分页中遇到的分页样式不美观,尤其是搜索条件丢失的问题,得到完美解决。

企业级技术与网站app运营 3101

Java农产品质量溯源大数据管理系统源码

产品追溯基于“一物一码”从工厂生产环节至销售阶段,赋予产品唯一的数码,并关联产品名称、批号、生产时间等信息,建立包装关联关系,为后期产品的追溯、营销搭建信息基础。 农产品溯源,从原材料收购、生产、加工质检到包装运输、终端门店销售等环节追溯,可以保证产品质量,监管部门和消费者都可以查询产品信息。对生产进行层层把关、一旦发现问题、立即进行处理、提升产品质量。

xingchen优快云的博客 1806

php实现自写分页,自写thinkphp page分页功能。

用 thinkphp 也好久了。 不过一直没用他的page分页类,因为。。真心不好用。好久之前就自己鼓捣了一个 分页函数,以代替page的功能。下面分享一下吧。主要是两个函数。 一个是正常的page分页功能,还有一个是获取 数字分页功能如: 1 2 3 4 5 6 这样的分页。function getShowPages($count,$page,$pagesize){if($page == 0) ...

weixin_39621185的博客 322

避开这些坑!RK3588安卓系统内置输入法的正确姿势(含.mk文件修改指南)

本文详细解析了在RK3588安卓系统定制中预置第三方输入法的完整流程与关键避坑指南。重点涵盖APK签名、Android.mk文件编写、系统默认输入法配置(使用adb ime list命令获取服务名)以及SeLinux策略适配等核心步骤,并指出RK3566/RK3568等兄弟平台的通用性与差异点,帮助开发者实现稳定、深度的系统集成。

tgb34567890的博客 440

Vanna 2.0:基于LLM的智能文本到SQL框架,实现企业级数据查询与权限控制

文本到SQL技术是自然语言处理与数据库交互的重要桥梁,它允许用户使用日常语言直接查询数据库,无需编写复杂的SQL语句。其核心原理是利用大语言模型理解用户意图,并结合检索增强生成技术,将自然语言问题转换为准确的结构化查询语言。这项技术的价值在于大幅降低了数据访问门槛,提升了业务人员的数据自助分析能力,并能在金融分析、销售报表、运营监控等场景中实现实时数据洞察。Vanna 2.0作为一个开源框架,通过引入用户感知的智能体架构和行级安全策略,解决了企业级应用中的多租户数据隔离与权限控制等关键问题,使得自然语言数据

weixin_42629522的博客 546

Thinkphp5.0模型操作使用page进行分页

view模板页面代码: 说明:分页使用的是layui的样式,效果如下图:

美奇软件开发工作室 1141

基于Plecs的LLC谐振变换器闭环设计:从PI参数整定到动态响应优化

本文详细介绍了在Plecs仿真环境中,如何为半桥LLC谐振变换器设计并优化闭环控制系统。从开环模型搭建与特性分析入手,重点阐述了基于频域法的PI控制器参数整定流程,并通过负载阶跃、输入电压突变等测试优化动态响应。文章还分享了从仿真模型过渡到实际硬件时的关键注意事项,帮助工程师实现稳定、高效的电源设计。

e4f5g6h的博客 624

php ?page,ThinkPHP学习笔记-分页类Page的用法

ThinkPHP中的Page类在ThinkPHP/Extend/Library/ORG/Util/Page.class.php中,所以使用前要引入Page类:1import('ORG.Util.Page');//Page类的引入2$db=M('abc');//实例化数据表abc3$where=array(4'id'=>'...

weixin_42509293的博客 493

ADS8681数据手册没讲透的细节:SPI时序、量程切换与电压换算的避坑指南

本文深入解析ADS8681数据手册未提及的SPI时序优化、量程切换陷阱与电压校准技巧。针对树莓派5与ADS8681的SPI通信问题,提供CPOL/CPHA配置建议;详解量程切换的位操作玄机与寄存器配置流程;并提出三步校准法应对非理想供电环境,帮助开发者提升ADC测量精度。

weixin_29178069的博客 524

工作:三菱PLC与伺服之CC-Link IE Field Network通讯应用

CC-LINK-IE

好记性不如烂笔头 2万+

tp5运用page.class.php,【ThinkPHP学习】Page分页类学习

RT.续上面的文章读取功能实现,接下来实现文章列表的分页功能。TP已经实现了一个分页类Page.class.php,3.1版本之前的TP Page类位于ThinkPHP扩展文件夹下,目录地址为ThinkPHP/Library/Org/Util/Page.class.php,引入使用,利用TP的import方法,import('ORG.Util.Page')。但是3.2版本之后的ThinkPHP已经...

weixin_29168153的博客 514

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ThinkPHP学习笔记-分页类Page的用法

为什么80%的码农都做不了架构师?>>> ...

weixin_33774308的博客 117

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

分页类 php,php分页类代码分享:2017年最新的10个php分页类代码下载

以下是php中文网总结的利用php实现的文章分页功能,有多种实现方法,你可以根据需要进行使用和下载这些代码片段,并有文字版和视频版的php分页教程供您学习!一.php分页类文字教程与代码片段本文讲解了PHP实现的简单分页类及用法示例,包含php分页跳转、 php分页循环、 php分页数据输出等代码如果是数据比较多,显示在一页就会看着很多,而且看起来会感觉很累 这时我们就用到了分页还在为分页功能的实...

weixin_42420422的博客 163

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

thinkphp分页代码Page类和limit讲解

通常在数据查询后都会对数据集进行分页操作,ThinkPHP也提供了分页类来对数据分页提供支持。 下面是数据分页的两种示例。         第一种:利用Page类和limit方法             $User = M('User'); // 实例化User对象            $count = $User-&gt;where('status=1')-&gt;count();/...

做个好的手艺人 2894

thinkphp简洁、美观、靠谱的分页类

废话不多说先上图预览下;即本博客的分页; 这个分页类是在thinkphp框架内置的分页类的基础上修改而来; 原分页类的一些设计,在实际运用中感觉不是很方便; 1:只有一页内容时不显示分页; 2:原分页类在当前页是第一页和最后一页的时候,不显示第一页和最后一页的按钮; 3:分页数比较少时不显示首页和末页按钮; 4:包裹分页内容的父级div没有class; 针对以

白俊遥的博客 3559

thinkphp 原生sql使用分页类

public function index(){ import("@.ORG.Page"); //导入分页类 $Dao = M(); $count = count($Dao->query("SELECT * FROM ofuser WHERE uid IN (SELECT uid FROM ofid WHERE uid ='1')"));//总计条...

diankui6178的博客 597

再看thinkphp5分页类使用

之前使用tp5的分页paginate类时只用到了第一个参数,也就是每页显示多少行 今天又仔细看了下手册和paginate类,发现paginate可传入的参数有很多,可以满足更多需求 比如可以指定分页的数据,可以使用重写的分页类等。。。 下面是tp5.1的分页类 /** * 分页查询 * @access public * @param i...

dk2319193的博客 230

php分页无极类的讲解_thinkphp分页代码Page类跟limit讲解

通常在数据查询后都会对数据集进行分页操作,ThinkPHP也提供了分页类来对数据分页提供支持。 下面是数据分页的两种示例。第一种:利用Page类和limit方法$User = M('User'); // 实例化User对象$count = $User->where('status=1')->count();// 查询满足要求的总记录数$Page = new \Think\Page($c...

weixin_42360762的博客 2423

(转)ThinkPHP使用心得分享-分页类Page的用法

转之--http://www.jb51.net/article/50138.htm ThinkPHP中的Page类在ThinkPHP/Extend/Library/ORG/Util/Page.class.php中,所以使用前要引入Page类: 复制代码代码如下: import('ORG.Util.Page'); //Page类的引入$db = M('abc');//实例...

157

php分页类与使用方法,ThinkPHP使用心得分享-分页类Page的用法

ThinkPHP中的Page类在ThinkPHP/Extend/Library/ORG/Util/Page.class.php中,所以使用前要引入Page类:import('ORG.Util.Page'); //Page类的引入$db = M('abc');//实例化数据表abc$where = array('id'=>'2';);//条件语句$where,例表中字段id的值为2$count...

weixin_39664477的博客 275

易语言多线程批量登录:选择框数组与账号增删的映射设计

多线程编程中,共享数据的线程安全访问与界面组件的动态映射是常见技术难点。其原理在于通过索引建立控件与数据的唯一对应关系,并利用临界区保护共享资源,避免并发读写导致的数据错乱。在批量账号管理场景下,这种设计能显著提升工具稳定性与响应速度,尤其适用于电商运营、自动化测试等需要动态增删账号并实时反馈登录状态的工程实践。选择框数组与账号数组的同步增删、结果队列加定时器的界面刷新模式,是解决多线程批量登录中界面卡顿与数据竞争的关键。

weixin_34293246的博客 379

thinkphp 自定义分页类 跳页功能

thinkphp 自定义分页类 跳页功能

rzj769826995的博客 765
上一篇: 【ThinkPHP学习】ThinkPHP自动转义存储富文本编辑器内容导致读取出错
下一篇: 【ThinkPHP学习】数据库设计相关问题
GiantChan
博客等级 码龄16年 76粉丝 108原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值