IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> TP6学习坑三:TP6分页样式及点击页数 搜索参数及其他参数丢失的解决方法 -> 正文阅读

[PHP知识库]TP6学习坑三:TP6分页样式及点击页数 搜索参数及其他参数丢失的解决方法

TP6学习分页时候,按照学习手册,出现分页不理想
一、先来看默认情况下,ThinkPHP6 自带的分页样式
1、控制器 DemoController.php 代码如下:
$res= a r c h i v e s ? > d b ( ) ? > w h e r e ( ′ t y p e i d ′ , archives->db() ->where('typeid', archives?>db()?>where(typeid,tid)->order(‘add_time’, ‘desc’)->paginate(2);

return view(‘list_article’, [‘res’ => $res]);
2、视图代码

{$res|raw}
3、完整分页的样式 如图所示: ![在这里插入图片描述](https://img-blog.csdnimg.cn/59c9a6bad9c54fd3b9a1bbfaf1621141.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3o0MDk2NTUxMzY=,size_16,color_FFFFFF,t_70) 4、简洁分页的样式

如图所示
在这里插入图片描述
5、尝试分页的情况下,网址中带搜索条件

…index.html?title=傻傻的

此时,点击下一页,会发现,搜索条件itle=傻傻的 丢失了,其他参数也丢失了

二、下面就来解决这些问题
1、先来解决默认分页样式中的 《 》 上一页,下一页的小箭头的问题

(1)把 Bootstrap 分页类复制过来

ThinkPHP 中的 Bootstrap 分页类的位置:

/vendor/topthink/think-orm/src/paginator/driver/Bootstrap.php

把这个分页类放到如下的位置:

首先在 /app/ 目录下,新建 common 文件夹

/app/common/Bootstrap.php

(2)打开这个类文件
修改 namespace app\common;
第 27 行 把 ? 修改为 上一页
即:
protected function getPreviousButton(string $text = “?”): string
修改为:
protected function getPreviousButton(string $text = “上一页”): string
第 46 行 把 ? 修改为 下一页
即:protected function getNextButton(string $text = ‘?’): string
修改为:
protected function getNextButton(string $text = ‘下一页’): string
(3)修改配置参数

文件位置:/app/provider.php

新增如下代码:
// 自定义分页类

//‘think\Paginator’ => ‘app\common\Bootstrap’
在这里插入图片描述
2、完整分页时,对分页样式的优化
在模板视图文件中添加如下 CSS 代码:

/* 前台 完整分页 分页效果 - bootstrap 样式 start */
.pagination {
  display: inline-block;
  padding-left: 0;
  margin: 20px 0;
  border-radius: 4px;
}
.pagination > li {
  display: inline;
}
.pagination > li > a,
.pagination > li > span {
  position: relative;
  float: left;
  padding: 6px 12px;
  margin-left: -1px;
  line-height: 1.42857143;
  color: #337ab7;
  text-decoration: none;
  background-color: #fff;
  border: 1px solid #ddd;
}
.pagination > li:first-child > a,
.pagination > li:first-child > span {
  margin-left: 0;
  border-top-left-radius: 4px;
  border-bottom-left-radius: 4px;
}
.pagination > li:last-child > a,
.pagination > li:last-child > span {
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
}
.pagination > li > a:hover,
.pagination > li > span:hover,
.pagination > li > a:focus,
.pagination > li > span:focus {
  z-index: 2;
  color: #23527c;
  background-color: #eee;
  border-color: #ddd;
}
.pagination > .active > a,
.pagination > .active > span,
.pagination > .active > a:hover,
.pagination > .active > span:hover,
.pagination > .active > a:focus,
.pagination > .active > span:focus {
  z-index: 3;
  color: #fff;
  cursor: default;
  background-color: #337ab7;
  border-color: #337ab7;
}
.pagination > .disabled > span,
.pagination > .disabled > span:hover,
.pagination > .disabled > span:focus,
.pagination > .disabled > a,
.pagination > .disabled > a:hover,
.pagination > .disabled > a:focus {
  color: #777;
  cursor: not-allowed;
  background-color: #fff;
  border-color: #ddd;
}
.pagination-lg > li > a,
.pagination-lg > li > span {
  padding: 10px 16px;
  font-size: 18px;
  line-height: 1.3333333;
}
.pagination-lg > li:first-child > a,
.pagination-lg > li:first-child > span {
  border-top-left-radius: 6px;
  border-bottom-left-radius: 6px;
}
.pagination-lg > li:last-child > a,
.pagination-lg > li:last-child > span {
  border-top-right-radius: 6px;
  border-bottom-right-radius: 6px;
}
.pagination-sm > li > a,
.pagination-sm > li > span {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
}
.pagination-sm > li:first-child > a,
.pagination-sm > li:first-child > span {
  border-top-left-radius: 3px;
  border-bottom-left-radius: 3px;
}
.pagination-sm > li:last-child > a,
.pagination-sm > li:last-child > span {
  border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
}
/* 前台 完整分页 分页效果 - bootstrap 样式 end */

分页效果,如图所示:
在这里插入图片描述
3、简洁分页时,对分页样式的优化
在模板视图文件中添加如下 CSS 代码:

/* WAP 简洁分页 分页效果 - bootstrap 样式 start */
ul.pager li { margin-left:10px; margin-right:10px;}
.pager {
  padding-left: 0;
  margin: 20px 0;
  text-align: left;
  list-style: none;
}
.pager li {
  display: inline;
}
.pager li > a,
.pager li > span {
  display: inline-block;
  padding: 5px 14px;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 15px;
}
.pager li > a:hover,
.pager li > a:focus {
  text-decoration: none;
  background-color: #eee;
}
.pager .next > a,
.pager .next > span {
  float: right;
}
.pager .previous > a,
.pager .previous > span {
  float: left;
}
.pager .disabled > a,
.pager .disabled > a:hover,
.pager .disabled > a:focus,
.pager .disabled > span {
  color: #777;
  cursor: not-allowed;
  background-color: #fff;
}
/* WAP 简洁分页 分页效果 - bootstrap 样式 end */

分页效果,如图所示
在这里插入图片描述
4、分页时,搜索条件丢失的解决方法
只需要把 paginate 方法,稍作如下调整,即可完美解决

(1)完整分页时

将 paginate 方法,由
// 完整分页
l i s t = D b : : n a m e ( ′ n e w s ′ ) ? > f i e l d ( ′ n e w s i d , n e w s t i t l e ′ ) ? > w h e r e ( list = Db::name('news')->field('news_id, news_title')->where( list=Db::name(news)?>field(newsi?d,newst?itle)?>where(where)->order(‘news_id desc’)->paginate([‘list_rows’=>3, ‘query’=>request()->param()], false);

// 简洁分页
l i s t = D b : : n a m e ( ′ n e w s ′ ) ? > f i e l d ( ′ n e w s i d , n e w s t i t l e ′ ) ? > w h e r e ( list = Db::name('news')->field('news_id, news_title')->where( list=Db::name(news)?>field(newsi?d,newst?itle)?>where(where)->order(‘news_id desc’)->paginate([‘list_rows’=>3, ‘query’=>request()->param()], true);

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-10 13:12:35  更:2021-08-10 13:13:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/13 8:16:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码