当前位置: 首页 > article >正文

ThinkPHP6+Layui自定义分页样式

文章转载出处:https://www.ziruchu.com/art/241

有些时候框架自带的分页并不能满足项目的需求,这时自定义分页样式就是首选了。此篇文章记录ThinkPHP6+Layui自定义分页样式的基础使用。

关于layui分页样式,自己到layui官方文档寻找自己喜欢的样式。

第一步:复制ThinkPHP6分页代码

找到ThinkPHP6分页代码到所需要的位置,

// ThinkPHP6分页代码位置
// vendor\topthink\think-orm\src\paginator\driver\Bootstrap.php

复制到Bootstrap.php到所需要的位置并修改文件名。我这里复制到了app\admin\CustomPaginate.php

第二步:修改自定义分页CustomPaginate.php

// app\admin\CustomPaginate.php// 修改一:修改命名空间
namespace app\admin;// 修改二:修改渲染分页html
/**
* 渲染分页html
* @return mixed
*/
public function render()
{if ($this->hasPages()) {if ($this->simple) {return sprintf('<div class="layui-box layui-laypage layui-laypage-molv" id="layui-laypage-3">%s %s</div>',$this->getPreviousButton(),$this->getNextButton());} else {return sprintf('<div class="layui-box layui-laypage layui-laypage-molv" id="layui-laypage-3">%s %s %s</div>',$this->getPreviousButton(),$this->getLinks(),$this->getNextButton());}}
}//修改三:修改上一页按钮
protected function getPreviousButton(string $text = "上一页"): string{
}//修改四:修改下一页按钮
protected function getNextButton(string $text = '下一页'): string{   
}// 修改五:生成一个可点击的按钮
protected function getAvailablePageWrapper(string $url, string $page): string
{return '<a href="' . htmlentities($url) . '">' . $page . '</a>';
}// 修改六:生成一个禁用的按钮
protected function getDisabledTextWrapper(string $text): string
{return '<a class="layui-laypage-prev layui-disabled">' . $text . '</a>';
}// 修改七:生成一个激活的按钮
protected function getActivePageWrapper(string $text): string
{
return '<span class="layui-laypage-curr"><em class="layui-laypage-em"></em><em>' . $text . '</em></span>';
}

第三步:注册自定义分页

app\provide.php文件中注册自定义分页。注册自定义分页后即是使用自定义分页。

// app\provide.php
<?php
use app\ExceptionHandle;
use app\Request;// 容器Provider定义文件
return [// ... 省略其他'think\Paginator'   => app\admin\CustomPaginate::class
];

经过这三个步骤后,自定义分页就完成了。

第四步:静态模板中使用分页

<div>
{$lists|raw}
</div>

至此:自定义分页与使用完成。

最后:完成时的效果图

完成图

http://www.lryc.cn/news/2416761.html

相关文章:

  • 博客搜索引擎列举|博客搜索引擎的浅比较
  • 多线程开发实战:Java实现多线程四种方式及相关方法原理
  • 端口详解及如何开起端口关闭端口
  • C语言之多线程编程
  • plsql学习笔记
  • MFC窗口之间的消息传递
  • Robot之Setting table部分
  • 从Java角度看区块链实践系列3——P2P网络:区块链P2P网络拓扑结构的演变史
  • 高并发高流量网站架构
  • 史上最简单易懂的 简析utf-8编码
  • C语言实战-贪吃蛇
  • 沟通CTBS物流行业远程接入解决方案
  • STM32CubeMX 下载安装使用(一)
  • H3C交换机配置DHCP中继
  • 编译hyperscan
  • CydiaSubstrate的简单使用
  • 探索MS17-010漏洞利用工具:All-In-One全方位解析
  • mysql用decimal_MySQL数据类型DECIMAL用法详解
  • MySQL - 存储过程 [Stored Procedure] - 学习/实践
  • INA3221和 ESP8266 6通道电流表
  • HTML自动暂停按钮,css 播放暂停按钮实现_html/css_WEB-ITnose
  • Linux命令及详解
  • c语言学习网站大全
  • 部署weblogic
  • 设计模式、设计模式的分类、作用、介绍
  • pushpop指令的操作数必须是字操作数_欧姆龙PLC(CPM1A)功能指令
  • VC++程序由Visual Studio 2003升级到Visual Studio 2005手记
  • (八)SQL SELECT INTO 语句和 INSERT INTO SELECT 语句
  • VS2010序列号(激活码)
  • Java的日期类说明Calendar、Data、日期转化格式化以及注意事项