加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

thinkPHP3怎样实现分页,代码指的是什么

发布时间:2023-05-10 13:57:22 所属栏目:PHP教程 来源:
导读:这篇文章主要讲解了“thinkPHP3怎样实现分页,代码是什么”,文中的讲解内容简单、清晰、详细,对大家学习或是工作可能会有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起
这篇文章主要讲解了“thinkPHP3怎样实现分页,代码是什么”,文中的讲解内容简单、清晰、详细,对大家学习或是工作可能会有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。
 
本文实例讲述了TP3.2框架分页相关实现方法。分享给大家供大家参考,具体如下:
 
需要用到分页的继承这个控制器即可
 
<?php
 
namespace Home\Controller;
 
use Think\Controller;
 
class BaseController extends Controller {
 
    /**
 
     * 基础分页的相同代码封装,使前台的代码更少
 
     * @param $count 要分页的总记录数
 
     * @param int $pagesize 每页查询条数
 
     * @return \Think\Page
 
    */
 
    function getpage($count, $pagesize = 20,$waps) {
 
          $Page = new \Think\Page($count,$pagesize,$waps);
 
     $Page->rollPage = 5;
 
     $Page->setConfig('header', '<li class="rows">第<b>%NOW_PAGE%</b>页/共<b>%TOTAL_PAGE%</b>页</li>');
 
       $Page->setConfig('prev', '上一页');
 
       $Page->setConfig('next', '下一页');
 
     $Page->setConfig('last', '末页');
 
         $Page->setConfig('first', '首页');
 
         $Page->setConfig('theme', '%FIRST%%UP_PAGE%%LINK_PAGE%%DOWN_PAGE%%END%%HEADER%');
 
         $Page->lastSuffix = false;//最后一页不显示为总页数
 
         return $Page;
 
    }
 
    /**
 
     * @param $model     模型
 
     * @param $map         where条件
 
     * @param $find      0 select 1=find 2=关联表
 
     * @return $list     数组
 
    */
 
    function _select($model,$map,$order='',$field="",$find="0",$limit=20,$join,$param){
 
        $waps = $param;
 
        if(empty($model) && empty($map)){
 
            $this->list = array();
 
        }else{
 
            if($find == 0){
 
                $count = $model->where($map)->count();
 
                $Page = $this->getpage($count,$limit,$waps);
 
                if($Page->firstRow < 0){
 
                    $Page->firstRow = 0;
 
                }
 
                if($order != ""){
 
                    $this->list = $model->field($field)->where($map)->order($order)->limit($Page->firstRow. ',' . $Page->listRows)->select();
 
                }else{
 
                    $this->list = $model->field($field)->where($map)->limit($Page->firstRow. ',' . $Page->listRows)->select();    
 
                }
 
                $this->page = $Page->show();
 
            }else if($find == 1){
 
                $this->list = $model->field($field)->where($map)->find();
 
            }else if($find == 3){
 
                $count = $model->alias("t1")->join($join)->where($map)->count();
 
                $Page = $this->getpage($count,$limit,$waps);
 
                if($Page->firstRow < 0){
 
                    $Page->firstRow = 0;
 
                }
 
                if($order != ""){
 
                    $this->list = $model->alias("t1")->join($join)->field($field)->where($map)->order($order)->limit($Page->firstRow. ',' . $Page->listRows)->select();
 
                }else{
 
                    $this->list = $model->alias("t1")->join($join)->field($field)->where($map)->limit($Page->firstRow. ',' . $Page->listRows)->select();    
 
                }
 
                $this->page = $Page->show();
 
            }else if($find == 4){
 
                if($order != ""){
 
                    $this->list = $model->alias("t1")->join($join)->field($field)->where($map)->order($order)->limit($Page->firstRow. ',' . $Page->listRows)->find();
 
                }else{
 
                    $this->list = $model->alias("t1")->join($join)->field($field)->where($map)->limit($Page->firstRow. ',' . $Page->listRows)->find();    
 
                }
 
            }
 
            $this->limit = $Page->firstRow;
 
            $this->assign("listinfo",$this->list);
 
            $this->assign("page",$this->page);
 
            return($this->list);
 
        }
 
    }
 
}
 
控制器中先继承后使用。
 
if($this->txt_keyword){
 
    $where['m_title'] = array('like','%'.$this->txt_keyword.'%');
 
}
 
 
 
$where['status'] = $param['status'] = 0;
 
$this->_select($this->information_mod,$where,'','*',0,10,'',$param);
 
$this->display();
 
模板中
 
<div class="hg_page" >
 
   {$page}
 
</div>
 
分页样式
 
<style>
 
 .hg_page .first, .hg_page .current, .hg_page .num, .hg_page .next, .hg_page .end, .hg_page .rows, .hg_page .prev{
 
  float: left;
 
  height: 37px;
 
  padding: 0 15px;
 
  border: 1px solid #e5e5e5;
 
  line-height: 37px;
 
  margin: 0 3px;
 
 }
 
 .hg_page{
 
  text-align: center;
 
  height: 37px;
 
  margin:0 auto;
 
  margin-top: 30px;
 
  margin-bottom: 20px;
 
  width: 800px;
 
 }
 
</style>
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!