Thinkphp5 自定义分页类
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,1.在extend\目录下创建page目录,在page目录中创建Page.php文件,将以下代码放入文件中
千家信息网最后更新 2025年02月23日Thinkphp5 自定义分页类
1.在extend\目录下创建page目录,在page目录中创建Page.php文件,将以下代码放入文件中
namespace page;
use think\Paginator;
class Page extends Paginator
{
//首页protected function home() { if ($this->currentPage() > 1) { return "首页"; } else { return "首页
"; }}//上一页protected function prev() { if ($this->currentPage() > 1) { return "上一页"; } else { return "上一页
"; }}//下一页protected function next() { if ($this->hasMore) { return "下一页"; } else { return"下一页
"; }}//尾页protected function last() { if ($this->hasMore) { return "尾页"; } else { return "尾页
"; }}//统计信息protected function info(){ return "共" . $this->lastPage . "页" . $this->total . "条数据
";}/** * 页码按钮 * @return string */protected function getLinks(){ $block = [ 'first' => null, 'slider' => null, 'last' => null ]; $side = 3; $window = $side * 2; if ($this->lastPage < $window + 6) { $block['first'] = $this->getUrlRange(1, $this->lastPage); } elseif ($this->currentPage <= $window) { $block['first'] = $this->getUrlRange(1, $window + 2); $block['last'] = $this->getUrlRange($this->lastPage - 1, $this->lastPage); } elseif ($this->currentPage > ($this->lastPage - $window)) { $block['first'] = $this->getUrlRange(1, 2); $block['last'] = $this->getUrlRange($this->lastPage - ($window + 2), $this->lastPage); } else { $block['first'] = $this->getUrlRange(1, 2); $block['slider'] = $this->getUrlRange($this->currentPage - $side, $this->currentPage + $side); $block['last'] = $this->getUrlRange($this->lastPage - 1, $this->lastPage); } $html = ''; if (is_array($block['first'])) { $html .= $this->getUrlLinks($block['first']); } if (is_array($block['slider'])) { $html .= $this->getDots(); $html .= $this->getUrlLinks($block['slider']); } if (is_array($block['last'])) { $html .= $this->getDots(); $html .= $this->getUrlLinks($block['last']); } return $html;}/** * 渲染分页html * @return mixed */public function render(){ if ($this->hasPages()) { if ($this->simple) { return sprintf( '%s%s %s %s', $this->css(), $this->prev(), $this->getLinks(), $this->next() ); } else { return sprintf( '%s%s %s %s %s %s %s', $this->css(), $this->home(), $this->prev(), $this->getLinks(), $this->next(), $this->last(), $this->info() ); } }}/** * 生成一个可点击的按钮 * * @param string $url * @param int $page * @return string */protected function getAvailablePageWrapper($url, $page){ return '' . $page . '';}/** * 生成一个禁用的按钮 * * @param string $text * @return string */protected function getDisabledTextWrapper($text){ return '' . $text . '
';}/** * 生成一个激活的按钮 * * @param string $text * @return string */protected function getActivePageWrapper($text){ return '' . $text . '';}/** * 生成省略号按钮 * * @return string */protected function getDots(){ return $this->getDisabledTextWrapper('...');}/** * 批量生成页码按钮. * * @param array $urls * @return string */protected function getUrlLinks(array $urls){ $html = ''; foreach ($urls as $page => $url) { $html .= $this->getPageLinkWrapper($url, $page); } return $html;}/** * 生成普通页码按钮 * * @param string $url * @param int $page * @return string */protected function getPageLinkWrapper($url, $page){ if ($page == $this->currentPage()) { return $this->getActivePageWrapper($page); } return $this->getAvailablePageWrapper($url, $page);}/** * 分页样式 */protected function css(){ return ' ';}
}
2.修改配置文件即可
//分页配置
'paginate' => [
'type' => 'page\Page',//分页类
'var_page' => 'page',
'list_rows' => 15,
],
分页样式为:
注:1)可以在代码中修改CSS部分代码,能修改一些颜色之类的样式
2)如果开启了TP5的简洁分页,只会显示上一页、下一页两个按钮
原文地址:http://www.thinkphp.cn/topic/50858.html
按钮
生成
上一
首页
代码
文件
样式
目录
页码
配置
普通
简洁
两个
信息
原文
地址
数据
激活
省略号
部分
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
大学生数据库实验课实验六
奥雷服务器
青桔自行车服务器加载中
怀旧六零数据库
合肥网络安全和信息化委员会议
软件开发人员工作职责
2018三级数据库技术题型
新发展理念 网络安全
软件开发专业日语
服务器默认用户名
网络安全隐患的主要情况
新浪 网络安全事件
网络舆情与网络安全学习心得
网络安全法规定最新
竹溪软件开发口碑推荐
浙江联想服务器续保维护
网络安全制度完善
南京软件开发商家
千阳网络技术有限公司邮编
测试如何管理服务器
连云港云服务器哪个厂家质量好
插值语句怎么写数据库
昌平区电子软件开发介绍
数据库触发器修改插入的值
网络技术公司岗位
cnki数据库分为_大专辑
湛江pc软件开发方案
网络技术员和助理工程师
关于数据库的设计
网络安全在身边手抄报50字