基础的分页调用
/** * 控制器部分代码 */ //实例化模型 $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; }
样式一图:
样式二图:
样式三图: