TP3.2框架分页相关实现方法分析


Posted in PHP onJune 03, 2020

本文实例讲述了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>

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
Jun 18 PHP
php的XML文件解释类应用实例
Sep 22 PHP
PHP基于CURL进行POST数据上传实例
Nov 10 PHP
Laravel框架中实现使用阿里云ACE缓存服务
Feb 10 PHP
Yii实现单用户博客系统文章详情页插入评论表单的方法
Dec 28 PHP
php中的常用魔术方法汇总
Feb 14 PHP
php项目开发中用到的快速排序算法分析
Jun 25 PHP
php中static和const关键字用法分析
Dec 07 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
Mar 01 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
Jul 08 PHP
PHP实现提取多维数组指定一列的方法总结
Dec 04 PHP
ThinkPHP3.1.2 使用cli命令行模式运行的方法
Apr 14 PHP
PHP Trait功能与用法实例分析
Jun 03 #PHP
PHP时间相关常用函数用法示例
Jun 03 #PHP
ThinkPHP5框架中使用JWT的方法示例
Jun 03 #PHP
Thinkphp5框架异常处理操作实例分析
Jun 03 #PHP
Thinkphp5框架中引入Markdown编辑器操作示例
Jun 03 #PHP
PHP数组基本用法与知识点总结
Jun 02 #PHP
PHP函数用法详解【初始化、嵌套、内置函数等】
Jun 02 #PHP
You might like
php实现随机生成易于记忆的密码
2015/06/19 PHP
PHP类和对象相关系统函数与运算符小结
2016/09/28 PHP
php封装的pdo数据库操作工具类与用法示例
2019/05/08 PHP
javascript各种复制代码收集
2008/09/20 Javascript
javascript中input中readonly和disabled区别介绍
2012/10/23 Javascript
用box固定长宽实现图片自动轮播js代码
2014/06/09 Javascript
jQuery延迟加载图片插件Lazy Load使用指南
2015/03/25 Javascript
使用jQuery调用XML实现无刷新即时聊天
2016/08/07 Javascript
js微信支付实现代码
2016/12/22 Javascript
JS实现问卷星自动填问卷脚本并在两秒自动提交功能
2020/06/17 Javascript
vue+express 构建后台管理系统的示例代码
2018/07/19 Javascript
深入理解JavaScript的async/await
2018/08/05 Javascript
JavaScript遍历查找数组中最大值与最小值的方法示例
2019/05/24 Javascript
React路由鉴权的实现方法
2019/09/05 Javascript
python实现数通设备端口监控示例
2014/04/02 Python
Python写的创建文件夹自定义函数mkdir()
2014/08/25 Python
Python基础教程之tcp socket编程详解及简单实例
2017/02/23 Python
Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录
2017/09/20 Python
Python3多目标赋值及共享引用注意事项
2019/05/27 Python
Python入门Anaconda和Pycharm的安装和配置详解
2019/07/16 Python
基于Python的图像数据增强Data Augmentation解析
2019/08/13 Python
python滑块验证码的破解实现
2019/11/10 Python
python简单实现插入排序实例代码
2020/12/16 Python
基于css3实现漂亮便签样式
2013/03/18 HTML / CSS
Pedro官网:新加坡时尚品牌
2019/08/27 全球购物
法国包包和行李箱销售网站:Bagage24.fr
2020/03/24 全球购物
酒店保洁主管岗位职责
2013/11/28 职场文书
食品业务员岗位职责
2014/03/18 职场文书
大三学习计划书范文
2014/05/02 职场文书
会计工作岗位职责
2015/02/03 职场文书
办公室日常管理制度
2015/08/04 职场文书
利用javaScript处理常用事件详解
2021/04/14 Javascript
用Python简陋模拟n阶魔方
2021/04/17 Python
MySQL时间盲注的五种延时方法实现
2021/05/18 MySQL
MYSQL数据库使用UTF-8中文编码乱码的解决办法
2021/05/26 MySQL
MySQL系列之十一 日志记录
2021/07/02 MySQL