thinkphp6使用layui分页组件做分页效果

博主用的是layui2.9.8的版本,但这个版本的分页组件是动态效果的,但我需要的是静态分页,所以我自己封装了一个生成layui的分页代码生成代码。代码如下:

1、先创建文件,路径是extent/layui/LayuiPage.php,加入下面代码,样式代码可以根据自己使用的layui版本自己修改

<?php
declare (strict_types = 1);namespace layui;class LayuiPage
{/*** @description:指定分类列表* @param: $total数据总数* @Author: wangze* @Date 2024/4/25*/public function page($total){$pagination = [];$page = getPage();//当前页$limit = getLimit();//每页数量//计算总页数$totalPages = (int)ceil($total / $limit);//页面数小于等于1,不显示分页if($totalPages <= 1)return '';// 如果总页数小于等于10,直接显示所有页码if ($totalPages <= 10) {for ($i = 1; $i <= $totalPages; $i++) {$pagination[] = $i;}}// 否则根据当前页数选择合适的显示方式else {// 根据当前页数确定 '...' 的位置if ($page <= 6) {for ($i = 1;$i <= 7; $i++) {$pagination[] = $i;}$pagination[] = '...';$pagination[] = $totalPages;} elseif ($page >= $totalPages - 5) {$pagination[] = 1;$pagination[] ='...';for ($i = $totalPages - 6; $i <= $totalPages; $i++) {$pagination[] = $i;}} else {$pagination[] = 1;$pagination[] = '...';for ($i = $page -2; $i <= $page + 2; $i++) {$pagination[] = $i;}$pagination[] = '...';$pagination[] = $totalPages;}}$last_page = $page - 1 <= 0 ? 0 : $page - 1;//上一页$next_page = $page + 1 <= $total ? $page + 1 : null;//下一页$html = '<div class="layui-box layui-laypage layui-laypage-molv" id="layui-laypage-18">';if($last_page <= 0){$html .= '<a class="layui-laypage-prev layui-disabled" data-page="' . $last_page . '">上一页</a>';}else{$html .= '<a href="' . $this->handleParam($last_page) . '" class="layui-laypage-prev" data-page="' . $last_page . '">上一页</a>';}foreach ($pagination as $v){if($v == $page){$html .= '<span class="layui-laypage-curr"><em class="layui-laypage-em" style="background-color:#1E9FFF;"></em><em>' . $v . '</em></span>';}else if($v == '...'){$html .= '<span class="layui-laypage-spr">...</span>';}else{$html .= '<a href="' . $this->handleParam($v) . '" data-page="' . $v . '">' . $v . '</a>';}}if($next_page > $totalPages){$html .= '<a class="layui-laypage-next layui-disabled" data-page="' . $next_page . '">下一页</a>';}else{$html .= '<a href="' . $this->handleParam($next_page) . '" class="layui-laypage-next" data-page="' . $next_page . '">下一页</a>';}$html = '</div>';return $html;}/*** @description: 分页参数处理* @param: {$page:分页数}* @Author: wangze* @Date 2024/5/6*/protected function handleParam($page){$param = request()->param();$get = [];foreach($param as $k=>$v){$get[$k] = $v;}$get['page'] = $page;$gets = '';foreach($get as $gk=>$gv){if(empty($gets)){$gets .= '?' . $gk . '=' . $gv;}else{$gets .= '&' . $gk . '=' . $gv;}}return $gets;}
}

2、注意:其中有2个方法,由于我多个接口会需要获取分页数和分页数量,所以在app/common.php文件中进行封装,可以根据自己的需求封装或者直接外部引入分页参数也可以。

$page = getPage();//当前页
$limit = getLimit();//每页数量

这2个方法是写在app/common.php文件中的,代码如下

/*** @description: 获取当前分页数*/
function getPage(){$page = input('page');if(empty($page) || $page <= 0)$page = 1;$page = (int)$page;return $page;
}/*** @description: 获取当前分页数量*/
function getLimit(){$limit = input('limit');if(empty($limit) || $limit <= 0)$limit = 20;$limit = (int)$limit;return $limit;
}

3、引用方法,下面是因为我又在common.php中封装了公共方法,可根据使用自行去封装

function layuiPage($total) {$ext = new \layui\LayuiPage();$res = $ext->page($total);return $res;
}

效果如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/11321.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于MetaGPT的LLM Agent学习实战(一)

前言 我最近一直在做基于AI Agent 的个人项目&#xff0c; 因为工作加班较多&#xff0c;设计思考时间不足&#xff0c;这里借着Datawhale的开源学习课程《MetaGPT智能体理论与实战》课程&#xff0c;来完善自己的思路&#xff0c;抛砖引玉&#xff0c;和各位开发者一起学习&am…

Run ‘conda init‘ before ‘conda activate‘

使用conda activate 虚拟环境名称的时候提示&#xff1a;Run conda init before conda activate 解决办法&#xff1a; 首先需要确保是管理员身份运行这个cmd窗口。 然后&#xff0c;现在执行一下&#xff1a;conda init 命令&#xff0c;最后再执行&#xff1a;conda activate…

纯血鸿蒙APP实战开发——首页下拉进入二楼效果案例

介绍 本示例主要介绍了利用position和onTouch来实现首页下拉进入二楼、二楼上划进入首页的效果场景&#xff0c;利用translate和opacity实现动效的移动和缩放&#xff0c;并将界面沉浸式&#xff08;全屏&#xff09;显示。 效果图预览 使用说明 向下滑动首页页面超过触发距…

冯喜运:5.13黄金原油震荡整理是涨还是跌?今日走势分析

【黄金消息面分析】;自5月初以来&#xff0c;黄金和白银一直在享受需求的回归&#xff0c;买家在过去几天加大了力度&#xff0c;一度推动金价重返2370美元上方&#xff0c;白银重返28.5美元上方。不过&#xff0c;经过几天的盘整后&#xff0c;黄金白银价格双双下跌。然而&…

Redis-详解(基础)

文章目录 什么是Redis&#xff1f;用Redis的特点&#xff1f;用Redis可以实现哪些功能&#xff1f;Redis的常用数据类型有哪些?Redis的常用框架有哪些?本篇小结 更多相关内容可查看 什么是Redis&#xff1f; Redis&#xff08;Remote DictionaryServer&#xff09;是一个开源…

下载文件名称乱码或变成了随机码

如图 后端是有正常返回附件名称的,浏览器开发工具中也正常显示了这个数据,但是下载下来的文件名称确实一堆随机码. 其实这个问题的原因是因为跨域 查看console: Refused to get unsafe header "content-disposition" 现象,后端传递到前端的fileName不能被识别,下载…

大模型与AIGC应用相关问题 模型大型

最近经常被问&#xff0c;你看“万亿的模型都出来了&#xff0c;你们训练的千亿模型是不是落伍了&#xff1f;”我想说&#xff1a;“虽然都叫超大模型&#xff0c;但是类型是不一样的&#xff0c;虽说每一类模型训出来都不容易&#xff0c;不过澄清一下概念还是必要的”。 大…

编写Ansible角色实现分布式LNMP安装

前言 本文将介绍如何使用 Ansible 编写角色&#xff0c;在分布式环境下完成 LNMP&#xff08;Linux、Nginx、MySQL、PHP&#xff09;的自动化&#xff08;编译&#xff09;安装和配置&#xff0c;并验证 PHP 与 MySQL 数据联通性&#xff0c;实现博客和论坛页面的展示。 常规…

Qt---信号和槽

一、信号和槽机制 所谓信号槽&#xff0c;实际就是观察者模式。当某个事件发生之后&#xff0c;比如&#xff0c;按钮检测到自己被点击了一下&#xff0c;它就会发出一个信号&#xff08;signal&#xff09;。这种发出是没有目的的&#xff0c;类似广播。如果有对象对这个信号…

二叉树的四种遍历代码实现

二叉树的遍历大致能分为以下几种 1.前序&#xff1a;根 左 右 2.中序&#xff1a;左 根 右 3.后序&#xff1a;左 右 根 4.层序&#xff1a;从根开始一层一层的向下 如上图访问顺序: 前序&#xff1a;1 2 3 N N N 4 5 N N 6 N N 中序&#xff1a;N 3 N 2 N 1 N 5 N 4 N …

docker-compose安装emqx集群(最新)(host模式)

机器&#xff1a; 10.60.0.20 10.60.0.21 10.60.0.22 一、三台机子都配置域名&#xff08;/etc/hosts&#xff09; 10.60.0.20 node1.emqx.io 10.60.0.22 node3.emqx.io 10.60.0.21 node2.emqx.io 二、docker-compose.yml&#xff08;10.60.0.21&#xff09; 其他两台机子自…

接搭建仿美团、代付系统源码搭建教程

最近很多粉丝催更、分享一下地球号&#xff1a;xiaobao0214520(WX) 现在大家都很流行搞网恋&#xff0c;我们搭建一个跟美团相似的系统 然后开发一个好友代付&#xff0c;我们在点单的时候转发链接让网恋对象付钱 若只是单点外卖的话&#xff0c;能榨出的油水还是太少。 所以…

Golang — map的使用心得和底层原理

map作为一种基础的数据结构&#xff0c;在算法和项目中有着非常广泛的应用&#xff0c;以下是自己总结的map使用心得、实现原理、扩容机制和增删改查过程。 1.使用心得&#xff1a; 1.1 当map为nil和map为空时&#xff0c;增删改查操作时会出现的不同情况 我们可以发现&#…

【全开源】废品回收微信小程序基于FastAdmin+ThinkPHP+UniApp

介绍 一款基于FastAdminThinkPHPUniApp开发的废品回收系统&#xff0c;适用废品回收站、再生资源回收公司上门回收使用的小程序 功能特性 1、会员注册 支持小程序授权注册和手机号注册 2、回收品类 可设置回收品类&#xff0c;废纸、废金属、废玻璃、旧衣服等 3、今日指导价…

面试高频知识点:Java互联网大厂高频面试题(持续收录)

文章目录 前言一、Java基础题1、Java语言的三大特性2、JDK 和 JRE 有什么区别3、Java基本数据类型及其封装类4、说明一下public static void main(String args[])这段声明里关键字的作用5、java的数据结构有哪些&#xff1f;6、抽象类和接口的区别?7、 与 equals 的区别8、Str…

WordPress插件Show IDs by Echo,后台显示文章、页面、分类、标签、媒体库、评论、用户的ID

WordPress的这款Show IDs by Echo插件&#xff0c;可以让我们设置是增加一列ID还是直接在“编辑 |快速编辑 |查看”操作后面增加ID&#xff0c;而且支持展示以下内容的ID&#xff1a; 文章页面类别标签评论自定义帖子类型自定义分类法用户媒体 Show IDs by Echo插件的安装及启…

企业级OV SSL证书:强化在线信任与安全的权威之选

在数字经济浪潮下&#xff0c;企业网站的安全性直接影响着用户信任度和业务的可持续发展。其中&#xff0c;企业级组织验证&#xff08;Organization Validation&#xff0c;简称OV&#xff09;SSL证书作为安全解决方案的重要一环&#xff0c;以其独有的优势&#xff0c;在众多…

网安面经之文件包含漏洞

一、文件包含漏洞 1、文件包含漏洞原理&#xff1f;危害&#xff1f;修复&#xff1f; 原理&#xff1a;开发⼈员⼀般希望代码更灵活&#xff0c;所以将被包含的⽂件设置为变量&#xff0c;⽤来进⾏动态调⽤&#xff0c;但是由于⽂件包含函数加载的参数没有经过过滤或者严格的…

LVDS 源同步接口

传统数据传输通常采用系统同步传输方式&#xff0c;多个器件基于同一时钟源进行系统同步&#xff0c;器件之间的数据传输时序关系以系统时钟为参考&#xff0c;如图1所示。系统同步传输方式使各器件处于同步工作模式&#xff0c;但器件之间传输数据的传输时延难以确定&#xff…

火山引擎VeDI:A/B测试平台指标能力升级,助力企业提升精细化运营效率

在数字化浪潮的推动下&#xff0c;数据分析与精细化运营已成为企业提升竞争力的关键。近日&#xff0c;火山引擎A/B测试DataTester完成了指标能力的全面升级&#xff0c;为企业在流量竞争激烈的市场中提供了更强大、更可信的数据支持。 此次升级亮点在于引入了“按某个属性去重…