Thinkphp5 自定义分页类
发表于:2026-10-30 作者:千家信息网编辑
千家信息网最后更新 2026年10月30日,1.在extend\目录下创建page目录,在page目录中创建Page.php文件,将以下代码放入文件中
千家信息网最后更新 2026年10月30日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安全错误
数据库的锁怎样保障安全
互联网品科技
互联网科技社
上海挚品互联网科技
西安互联网科技
互联网科技论文
深圳齐家互联网科技
银优互联网科技有限公司
广州紫鲸互联网科技
互联网科技论坛
上海电发互联网科技有限公司
卫星互联网科技股票
互联网之后的科技是什么
互联网科技博主是什么意思
互联网科技有哪些公司
互联网科技年终奖
中国新注册互联网科技
互联网金融运营模式中的金融科技
马化腾互联网科技教学
广东猫王互联网科技有限公司电话
互联网科技创业有什么好项目
齐家互联网科技
唐信互联网科技 大连
互联网科技英文翻译
江苏南京365互联网科技
千方科技属于互联网企业吗
高科技互联网发展前景如何
群盈汇互联网科技有限公司
宇信科技在杭州互联网排第几
半导体是互联网高科技吗
萌小萌互联网科技河南有限公司