tp5.0学习(二)

article/2025/7/17 19:05:17

24、分页功能

见手册–杂项–分页

分页原理:核心是使用sql语句中的limit限制条件

分页的实现分为两部分:一个是分页栏链接html代码,一个是当前页数据查询。

ThinkPHP5.0内置了分页实现,要给数据添加分页输出功能在5.0变得非常简单,可以直接在Db类查询的时候调用paginate方法:

paginate(分页条数,是否简洁分页|分页总数,分页配置)

是否简洁分页:boolean类型
分页配置:[] 数组类型

分页配置示例

paginate(分页条数,是否简洁分页|分页总数,[//分页变量名'var_page' => 'page',//额外参数,可以传递多个额外参数,所以它的值还是个数组'query' => ['keyword'=>'oppo''额外参数二'=>'额外参数二的值']
])

1.tp框架中的分页使用步骤

1.1控制器查询数据

Db类查询调用paginate

// 查询状态为1的用户数据 并且每页显示10条数据
$list = Db::name('user')->where('status',1)->paginate(10);
// 把分页数据赋值给模板变量list
$this->assign('list', $list);
// 渲染模板输出
return $this->fetch();

也可以模型查询调用

// 查询状态为1的用户数据 并且每页显示10条数据
$list = User::where('status',1)->paginate(10);
// 把分页数据赋值给模板变量list
$this->assign('list', $list);
// 渲染模板输出
return $this->fetch();

1.2模板输出分页(到这里已经完成分页)

<div>
<ul>
{volist name='list' id='user'}<li> {$user.nickname}</li>
{/volist}
</ul>
</div>
{$list->render()}

也可以单独赋值分页输出的模板变量

// 查询状态为1的用户数据 并且每页显示10条数据
$list = User::where('status',1)->paginate(10);
// 获取分页显示
$page = $list->render();
// 模板变量赋值
$this->assign('list', $list);
$this->assign('page', $page);
// 渲染模板输出
return $this->fetch();

因此模板文件中的代码就需要变更为


<div>
<ul>
{volist name='list' id='user'}<li> {$user.nickname}</li>
{/volist}
</ul>
</div>
{$page}

默认情况下,生成的分页输出是完整分页功能,带总分页数据和上下页码,分页样式只需要通过样式修改即可,完整分页默认生成的分页输出代码为:

<ul class="pagination">
<li><a href="?page=1">&laquo;</a></li>
<li><a href="?page=1">1</a></li>
<li class="active"><span>2</span></li>
<li class="disabled"><span>&raquo;</span></li>
</ul>

1.3.可传入总记录数(拓展)

这个几乎就用不上,如果你知道你的数据记录数是不变的,是固定的可以这样用


// 查询状态为1的用户数据 并且每页显示10条数据 总记录数为1000
$list = User::where('status',1)->paginate(10,1000);
// 获取分页显示
$page = $list->render();
// 模板变量赋值
$this->assign('list', $list);
$this->assign('page', $page);
// 渲染模板输出
return $this->fetch();

1.4.简洁分页(拓展)

有时候在做一个手机页面的时候,可能不需要那么多页面,只想要一个上一页,下一页
控制器

// 查询状态为1的用户数据 并且每页显示10条数据
$list = User::where('status',1)->paginate(10,true);
// 把分页数据赋值给模板变量list
$this->assign('list', $list);
// 渲染模板输出
return $this->fetch();

简洁模式输出的分页HTML代码格式为

<ul class="pager">
<li><a href="?page=1">&laquo;</a></li>
<li class="disabled"><span>&raquo;</span></li>
</ul>

1.5.分页参数(拓展)

主要的分页参数如下:

参数描述
list_rows每页数量
page当前页
pathurl 路径
queryurl额外参数
fragmenturl锚点
var_page分页变量
type分页类名

比如当前页面var_page属性就是代表这个,有时候想更换这个page名称就可以通过配置

在这里插入图片描述

又比如我们想用自己的分页类文件的时候,也可以通过配置进行变更
在这里插入图片描述

1.5.1配置文件设置参数方式

//分页配置
'paginate'               => ['type'     => 'bootstrap','var_page' => 'page',
],

type属性支持命名空间,例如:
这个的意思是你可以把分页驱动放到任意位置,然后只需要通过命名空间就可以进行调用

//分页配置
'paginate'               => ['type'     => '\org\page\bootstrap','var_page' => 'page',
],

1.5.2也可以在调用分页方法的时候传入配置

$list = Db::name('user')->where('status',1)->paginate(10,true,['type'     => 'bootstrap','var_page' => 'page',
]);

看第四小节,利用这个知识点,做一个分页+搜索的功能

2.框架中分页相关的类(了解、自定义)

位置

thinkphp\library\think\Paginator.php  
分页驱动thinkphp\library\think\paginator\driver\bootstrap.php

3.商品列表分页展示

注意:如果你的总数都没有每页分页数多,就不会显示分页
在这里插入图片描述
这里显示就样式错乱了,原因是这套后台模板本身就对这个ul li标签做了自定义样式
在这里插入图片描述
解决办法就是我们自己再写一套样式用于覆盖它

        <style type="text/css">.pagination li{list-style:none;float:left;margin-left:10px;padding:0 10px;background-color:#5a98de;border:1px solid #ccc;height:26px;line-height:26px;cursor:pointer;color:#fff;}.pagination li a{color:white;padding: 0;line-height: inherit;border: none;}.pagination li a:hover{background-color: #5a98de;}.pagination li.active{background-color:white;color:gray;}.pagination li.disabled{background-color:white;color:gray;}</style>

在这里插入图片描述

在这里插入图片描述

3.1修改上一页和下一页按钮为汉字

默认是箭头
在这里插入图片描述
找到Bootstr


http://chatgpt.dhexx.cn/article/FnoPKlWr.shtml

相关文章

thinkphp6-学习记录-应用手册

thinkphp6 ThinkPHP6-开发学习整理 TP6 框架源码下载项目目录框架测试 安装重点介绍TP6的架构详述-依赖注入容器与系统服务和门面中间件事件触发监听路由器详解 数据库主要特性&#xff1a;连接数据库配置文件连接参数切换连接模型类定义配置参数参考断线重连 分布式数据库分布…

laravel框架实战学习心得

本学期我们开了laravel框架这门课程&#xff0c;通过这个学期的学习&#xff0c;我受益匪浅&#xff0c;深有体会。 众所周知&#xff0c;随着信息技术的高速发展并迅速渗透到社会生活的各个方面&#xff0c;计算机日益成为人们的学习&#xff0c;工作&#xff0c;生活不可缺少…

MySQL数据库概述以及环境搭建(Windows)

mysql数据库 第一部分、MySQL数据库基础篇 一、数据库概述与MySQL安装篇 第一章&#xff1a;数据库概述 1、为什么要使用数据库 数据库可以实现数据的持久化 持久化&#xff1a;把数据保存到可掉电式储存设备中以供之后使用&#xff0c;实现数据的持久化 持久化的主要作用…

【MySQL基础】1—数据库概述、MySQL环境搭建、基本的SELECT语句

⭐⭐⭐⭐⭐⭐ Github主页&#x1f449;https://github.com/A-BigTree 笔记链接&#x1f449;https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以&#xff0c;麻烦各位看官顺手点个star~&#x1f60a; 如果文章对你有所帮助&#xff0c;可以点赞&#x1f44d;…

Thinkph6 命令大全,插件,路由,扩展,日常总结,更新等

命令行 php think list - 查看所有可用的命令列表php think help [command] - 查看指定命令的帮助信息php think build - 生成运行时文件php think clear - 清空应用的缓存、日志等文件php think optimize - 优化应用的性能php think make:controller [module/]controller - 创…

PHP大神课程,[项目实战] PHP大神零础班+就业班 大神极速PHP基础入门视频教程 基础课程+项目...

资源介绍 ├<39期基础班> │ xa0├xa0 │ xa0│ xa0├1BS网络结构.wmv │ xa0│ xa0├2html介绍.wmv │ xa0│ xa0├3字体修饰标记.wmv │ xa0│ xa0├4editplus设置.wmv │ xa0│ xa0├5排版标记.wmv │ xa0│ xa0├6项目符号和编号.wmv │ xa0│ xa0└第01天.zip │ xa…

数据库应用+SQL优化+Git

数据库应用 1.1 概念1.1.1 什么是数据库1.1.2 关系型和非关系型1.1.3 关系型数据库1.2 Mysql数据库1.2.1 MySQL数据存放在哪里?1.2.2 MySQL服务端1.2.3 MySQL客户端1:DOS窗口1.2.4 MySQL客户端2:可视化工具1.3 数据库的结构1.3.1 数据库结构1.4 SQL语句1.4.1 定义1.4.2 分类…

PHP大神课程,[项目实战教程] PHP大神零础班+就业班 大神极速PHP基础入门视频教程 基础课程...

资源介绍 ├<39期基础班> │xa0xa0├xa0 │xa0xa0│xa0xa0├1BS网络结构.wmv │xa0xa0│xa0xa0├2html介绍.wmv │xa0xa0│xa0xa0├3字体修饰标记.wmv │xa0xa0│xa0xa0├4editplus设置.wmv │xa0xa0│xa0xa0├5排版标记.wmv │xa0xa0│xa0xa0├6项目符号和编号.wmv │xa…

mysql(一):数据库概述、mysql概述与安装配置、sql语言、DDL、DML、索引

目录 数据处理1. 数据库1.1概述1.1.1 数据存储1.1.2 数据库应用领域1.1.3 基本概念1.1.4 数据库分类和常见数据库 1.2 MySQL1.2.1 MySQL特点1.2.2 MySQL安装1.2.3 启动和连接MySQL服务1.2.4 MySQL数据库结构1.2.5 基本概念解析 2 SQL语言2.1 什么是SQL2.2 SQL语言特点2.2.1 SQL…

PHP-待续...

PHP 1. 认识PHP 1.1 什么是PHP PHP 是 “PHP Hypertext Preprocessor(超级文本预处理器)” 的首字母缩略词&#xff0c;动态网页编程语言PHP文件可包含文本&#xff0c;HTML&#xff0c;JavaScript代码和PHP代码PHP代码在服务器上执行&#xff0c;结果以纯HTML形式返回给浏览…

数据库的安装卸载与使用

一、数据库概述 1.为什么软件测试工程师还需要学习数据库以及开发方面的知识&#xff1f; 测试工程师的目的是找出软件的不足&#xff0c;并告诉开发工程师&#xff0c;出现问题的环境&#xff0c;操作步骤和输入输出数据&#xff1b;优秀的测试工程师&#xff0c;需要告诉开…

C# “配置系统未能初始化” 异常解决

使用App.config配置参数&#xff0c;读取参数出现错误 “System.Configuration.ConfigurationErrorsException”类型的未经处理的异常在 System.Configuration.dll 中发生 其他信息: 配置系统未能初始化 验证App.config文件没有结构错误 解决办法&#xff1a; 如果配置文件中…

解决winform中的异常【配置系统未能初始化】

最近在讲课演示的时候&#xff0c;偶尔会发生如下的异常。“配置系统未能初始化”&#xff0c;当时也没有时间深究到底什么原因造成的。 今天再一琢磨&#xff0c;以上的InnerException提示说&#xff1a;无法识别的配置节userSettings。 再一深入找下去&#xff0c;我们找到下…

解决打开EXCEL插件时报错“配置系统未能初始化”的问题

今天客户提了一个在打开NC系统的预算EXCEL预算客户端时报错&#xff0c;提示“配置系统未能初始化”的问题&#xff0c;ISM中没有类似用户提示&#xff0c;经过EXCEL插件后&#xff0c;问题依然存在。应该是系统环境问题或有配置信息导致。 网上查询&#xff0c;大部分都是因为…

安装sql server出现配置系统未能初始化

解决方法 1.找到C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG目录下的machine.config文件 2.删除 <system.serviceModel>xxxxxx</system.serviceModel>整个节点 3.如果遇见删除之后提示保存不了machine.config文件&#xff0c;在这里 搜索记事本 并用…

C# “配置系统未能初始化”

运行程序时&#xff0c;出现这个问题。 问题应该是出在App.config文件上。 我曾手动打开这个文件修改了一些内容&#xff0c;但修改后&#xff0c;没发现XML内容及格式有错。 或许是用第三方的编辑软件在修改及保存App.config内容时&#xff0c;加了一些不可见的字符。 后来导…

.NET 配置系统未能初始化”异常

最近在讲课演示的时候&#xff0c;偶尔会发生如下的异常。“配置系统未能初始化”&#xff0c;当时也没有时间深究到底什么原因造成的。 今天再一琢磨&#xff0c;以上的InnerException提示说&#xff1a;无法识别的配置节userSettings。 再一深入找下去&#xff0c;我们找到下…

RAD Studio 安装之后出现“配置系统未能初始化“

我最近在我的 Win10 64位电脑上安装 RAD Studio 10 Seattle 成功后出现了莫名其妙的问题&#xff0c; 我百度了很久都没解决&#xff0c;直到发现一篇博客试了一试&#xff0c;解决了&#xff0c;我太开心了&#xff0c;觉得还是把这些坑都写清楚&#xff0c;方便大家避坑 原文…

莫名其妙的“配置系统未能初始化”异常

最近在讲课演示的时候&#xff0c;偶尔会发生如下的异常。“配置系统未能初始化”&#xff0c;当时也没有时间深究到底什么原因造成的。 今天再一琢磨&#xff0c;以上的InnerException提示说&#xff1a;无法识别的配置节userSettings。 再一深入找下去&#xff0c;我们找到下…