thinkphp5两种分页方法

 thinkphp5两种分页方法 

use \org\until\Page; public function page(){ //法一:thinkphp5自带分页 $list = Db::name('article')->paginate(5,true); $page = $list->render(); //法二:使用扩展类库分页 $count = Db::name('article')->count(); $p = new Page($count, 5); $p->setConfig('prev', '上一页'); $p->setConfig('header', '篇文章'); $p->setConfig('first', '首 页'); $p->setConfig('last', '末 页'); $p->setConfig('next', '下一页'); $temp_str = "%first%%upPage%%prePage%%linkPage%%nextPage%%downPage%%end%<select name='select' onChange='javascript:window.location.href=(this.options[this.selectedIndex].value);'>%allPage%</select>共<font color='#CD4F07'><b>%totalRow%</b></font>篇 5篇/每页"; $p->setConfig('theme', $temp_str); //数据查询 $list = Db::name('article')->order('istop desc,addtime desc')->limit($p->firstRow . ',' . $p->listRows)->select(); echo Db::name('article')->getLastSql(); $page = $p->show(); //封装变量 $this->assign('page', $page); $this->assign('list', $list); // 渲染模板输出 return $this->fetch(); } 扩展page类 <?php namespace org\until; class Page { // 起始行数 public $firstRow ; // 列表每页显示行数 public $listRows ; // 页数跳转时要带的参数 public $parameter ; // 分页总页面数 protected $totalPages ; // 总行数 protected $totalRows ; // 当前页数 public $nowPage ; // 分页的栏的总页数 protected $coolPages ; // 分页栏每页显示的页数 protected $rollPage ; //默认分页变量 protected $varPage; // 分页显示定制 protected $config = array('header'=>'条记录','prev'=>'上一页','next'=>'下一页','first'=>'第一页','last'=>'最后一页','theme'=>' %totalRow% %header% %nowPage%/%totalPage% 页 %upPage% %downPage% %first% %prePage% %linkPage% %nextPage% %end%'); /** +---------------------------------------------------------- * 架构函数 +---------------------------------------------------------- * @access public +---------------------------------------------------------- * @param array $totalRows 总的记录数 * @param array $listRows 每页显示记录数 * @param array $parameter 分页跳转的参数 +---------------------------------------------------------- */ public function __construct($totalRows,$listRows=15,$parameter='',$var_page= 'page') { $this->varPage = $var_page; $this->totalRows = $totalRows; $this->parameter = $parameter; $this->rollPage = 5; $this->listRows = $listRows; $this->totalPages = ceil($this->totalRows/$this->listRows); //总页数 $this->coolPages = ceil($this->totalPages/$this->rollPage); $this->nowPage = !empty($_GET[$this->varPage])?$_GET[$this->varPage]:1; if(!empty($this->totalPages) && $this->nowPage>$this->totalPages) { $this->nowPage = $this->totalPages; } $this->firstRow = $this->listRows*($this->nowPage-1); } public function setConfig($name,$value) { if(isset($this->config[$name])) { $this->config[$name] = $value; } } /** +---------------------------------------------------------- * 分页显示输出 +---------------------------------------------------------- * @access public +---------------------------------------------------------- */ public function show() { if(0 == $this->totalRows) return ''; $depr = strpos($_SERVER['REQUEST_URI'],'?')?'&':"?"; $p = $this->varPage; $ext_htm = '.html'; $nowCoolPage = ceil($this->nowPage/$this->rollPage); //静态化需要 $url = $_SERVER['REQUEST_URI']; $url = str_ireplace($ext_htm,'',$url); $patern = "/[\?|\&]+(".$p."=)[0-9]+/i"; echo $patern; $url = preg_replace($patern,"",$url); if($this->parameter != ''){ $url = $url.(strpos($_SERVER['REQUEST_URI'],'?')?'':"&").$this->parameter; } $depr = strpos($url,'?')?'&':"?"; /*$parse = parse_url($url); if(isset($parse['query'])) { parse_str($parse['query'],$params); unset($params[$p]); $url = $parse['path'].'?'.http_build_query($params); }*/ //上下翻页字符串 $upRow = $this->nowPage-1; $downRow = $this->nowPage+1; if ($upRow>0){ $upPage="<a rel='external' href='".$url.$depr.$p."=$upRow{$ext_htm}'>".$this->config['prev']."</a>\n"; }else{ $upPage="<span>".$this->config['prev']."</span>\n"; } if ($downRow <= $this->totalPages){ $downPage="<a rel='external' href='".$url.$depr.$p."=$downRow{$ext_htm}'>".$this->config['next']."</a>\n"; }else{ $downPage="<span>".$this->config['next']."</span>\n"; } // << < > >> if($nowCoolPage == 1){ $theFirst = ""; $prePage = ""; }else{ $preRow = $this->nowPage-$this->rollPage; $prePage = "<a href='".$url.$depr.$p."=$preRow' >上".$this->rollPage."页</a>"; $theFirst = "<a href='".$url.$depr.$p."=1' >".$this->config['first']."</a>"; } if($nowCoolPage == $this->coolPages){ $nextPage = ""; $theEnd=""; }else{ $nextRow = $this->nowPage+$this->rollPage; $theEndRow = $this->totalPages; $nextPage = "<a href='".$url.$depr.$p."=$nextRow' >下".$this->rollPage."页</a>"; $theEnd = "<a href='".$url.$depr.$p."=$theEndRow' >".$this->config['last']."</a>"; } // 1 2 3 4 5 $linkPage = ""; for($i=1;$i<=$this->rollPage;$i++){ $page=($nowCoolPage-1)*$this->rollPage+$i; if($page!=$this->nowPage){ if($page<=$this->totalPages){ $linkPage .= "<a rel='external' href='".$url.$depr.$p."=$page{$ext_htm}'>".$page."</a>\n"; }else{ break; } }else{ if($this->totalPages != 1){ $linkPage .="<span>".$page."</span>\n"; } } } //下拉选择分页效果 $allPage = ""; for($i=1;$i<=$this->rollPage;$i++){ $page=($nowCoolPage-1)*$this->rollPage+$i; if($page!=$this->nowPage){ if($page<=$this->totalPages){ $allPage .="<option value='".$url.$depr.$p."=$page{$ext_htm}'>".$page."</option>"; }else{ break; } }else{ $allPage .="<option value='".$url.$depr.$p."=$page{$ext_htm}' selected='selected'>".$page."</option>"; } } $pageStr = str_replace( array('%header%','%nowPage%','%totalRow%','%totalPage%','%upPage%','%downPage%','%first%','%prePage%','%linkPage%','%allPage%','%nextPage%','%end%'), array($this->config['header'],$this->nowPage,$this->totalRows,$this->totalPages,$upPage,$downPage,$theFirst,$prePage,$linkPage,$allPage,$nextPage,$theEnd),$this->config['theme']); return $pageStr; } } ?>

 

转载于:https://www.cnblogs.com/yuesha/articles/6418074.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值