基础的分页调用
- /**
- * 控制器部分代码
- */
- //实例化模型
- $areasModel=new Areas();
- //分页数据集
- $listarea=$areasModel->paginate($page);
- //分页显示输出
- $page=$listarea->render();
- //模板赋值
- $this->assign('listarea',$listarea);
- $this->assign('page', $page);
- /**
- * 模板页面部分代码
- */
- {$page}//分页输出
- {$listarea->total()}//数据总数
- {$listarea->lastPage()}//总页数
- {$listarea->currentPage()}//当前页
分页类修改,写了三个样式;
public $rollPage=5;//分页栏每页显示的页数public $showPage=12;//总页数超过多少条时显示的首页末页/*** 分页样式一:首页末页不管何时都显示** 分页样式二:前n页时不显示首页,后n页时不显示末页;n=分页栏数/2(向下取整)*///样式1和样式2核心代码/*** 页码按钮* @return string*/protected function getLinks(){if ($this->simple)return '';$block = ['first' => null,'slider' => null,'last' => null];$rollPage = $this->rollPage;//分页栏每页显示的页数$nowPage = floor($rollPage/2);//计算分页临时变量if($this->lastPage <= $rollPage){$block['first'] = $this->getUrlRange(1, $this->lastPage);}else if($this->currentPage <= $nowPage){$block['first'] = $this->getUrlRange(1, $rollPage);}else if($this->currentPage >= ($this->lastPage - $nowPage)){$block['first'] = $this->getUrlRange($this->lastPage - $rollPage+1, $this->lastPage);}else{$block['first'] = $this->getUrlRange($this->currentPage - $nowPage, $this->currentPage + $nowPage);}$html = '';if (is_array($block['first'])) {$html .= $this->getUrlLinks($block['first']);}return $html;}/*** 分页样式三* 按照段分页,具体的效果可以自己下载代码** 例1:1-5,4-8,7-11,...* 在第一段时:点击5时跳到下一段* 在第二段时:点击8时跳到下一段,点击4时回到上一段** 例2:1-7,6-12,11-17,...* 在第二段时:点击12时跳到下一段点击6时回到上一段* 在第三段时:点击17时跳到下一段,点击11时回到上一段**///核心代码/*** 页码按钮* @return string*/protected function getLinks(){if ($this->simple)return '';$block = ['first' => null,'slider' => null,'last' => null];$rollPage = $this->rollPage;//分页栏每页显示的页数$nowPage = floor($rollPage/2);//计算分页临时变量if($this->lastPage <= $rollPage){$block['first'] = $this->getUrlRange(1, $this->lastPage);}else if($this->currentPage==0 || $this->currentPage<$rollPage){$block['first'] = $this->getUrlRange(1, $rollPage);}else{$n=floor(($this->currentPage+($rollPage-4))/($rollPage-2));$start=$n*($rollPage-2)-($rollPage-3);$end=$start+$rollPage-1;$end=$end>$this->lastPage ? $this->lastPage : $end;$block['first'] = $this->getUrlRange($start,$end);}$html = '';if (is_array($block['first'])) {$html .= $this->getUrlLinks($block['first']);}return $html;}

用法:将文件复制到 thinkphp/library/think/paginator/driver/ 目录下面,
用哪个样式就将配置文件里面的type改成对应的样式就行了;
例如:'type' => 'bootstrap5',
bootstrap下载地址:https://www.yinhoujie.cn/other/bootstrap.zip
博客介绍了基础的分页调用,包含控制器部分代码,如实例化模型、获取分页数据集等,还展示了模板页面部分代码用于分页输出。同时提到分页类修改,写了三种样式,将文件复制到指定目录,通过修改配置文件的type选择样式,并给出了bootstrap下载地址。
475





