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里面的抽象类
Jan 28 PHP
比较简单实用的PHP无限分类源码分享(思路不错)
Oct 13 PHP
PHP仿博客园 个人博客(2) 数据库增添改删
Jul 05 PHP
用PHP来计算某个目录大小的方法
Apr 01 PHP
php+mysql实现数据库随机重排实例
Oct 17 PHP
thinkphp备份数据库的方法分享
Jan 04 PHP
PHP基于单例模式实现的数据库操作基类
Jan 15 PHP
PHP实现Google plus的好友拖拽分组效果
Oct 21 PHP
php+webSoket实现聊天室示例代码(附源码)
Feb 17 PHP
PHP实现验证码校验功能
Nov 16 PHP
php删除一个路径下的所有文件夹和文件的方法
Feb 07 PHP
Laravel框架自定义验证过程实例分析
Feb 01 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记录日志的实现代码
2011/08/08 PHP
详解PHP的Yii框架中日志的相关配置及使用
2015/12/08 PHP
php PDO属性设置与操作方法分析
2018/12/27 PHP
在html页面中包含共享页面的方法
2008/10/24 Javascript
基于jQuery的日期选择控件
2009/10/27 Javascript
ExtJs纵坐标值重复问题的解决方法
2014/02/27 Javascript
用js设置下拉框为只读的小技巧
2014/04/10 Javascript
详谈jQuery中的this和$(this)
2014/11/13 Javascript
node.js中的http.createServer方法使用说明
2014/12/14 Javascript
jQuery插件formValidator实现表单验证
2016/05/23 Javascript
Three.js学习之网格
2016/08/10 Javascript
jQuery内容过滤选择器用法示例
2016/09/09 Javascript
JS小数转换为整数的方法分析
2017/01/07 Javascript
深入理解ES6 Promise 扩展always方法
2017/09/26 Javascript
微信小程序实现图片放大预览功能
2020/10/22 Javascript
vue 实现模糊检索并根据其他字符的首字母顺序排列
2019/09/19 Javascript
微信接入之获取用户头像的方法步骤
2019/09/23 Javascript
js实现中文实时时钟
2020/01/15 Javascript
Selenium执行JavaScript脚本的方法示例
2020/12/31 Javascript
[01:19:46]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第一场 2月28日
2021/03/11 DOTA
python删除文件示例分享
2014/01/28 Python
python的绘图工具matplotlib使用实例
2014/07/03 Python
python文本数据处理学习笔记详解
2019/06/17 Python
Python基于Socket实现简单聊天室
2020/02/17 Python
Html5内唤醒百度、高德APP的实现示例
2019/05/20 HTML / CSS
德国高性价比网上药店:medpex
2017/07/09 全球购物
个人近期表现材料
2014/02/11 职场文书
《影子》教学反思
2014/02/21 职场文书
平安建设实施方案
2014/03/19 职场文书
社会实践活动总结范文
2014/07/03 职场文书
2015年数学教师工作总结
2015/05/20 职场文书
开学典礼观后感
2015/06/15 职场文书
法定代表人身份证明书
2015/06/18 职场文书
实例讲解Python中sys.argv[]的用法
2021/06/03 Python
浅谈mysql返回Boolean类型的几种情况
2021/06/04 MySQL
深入理解go缓存库freecache的使用
2022/02/15 Golang