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 获取当前访问的url文件名的方法小结
Feb 08 PHP
PHP的异常处理类Exception的使用及说明
Jun 13 PHP
用 Composer构建自己的 PHP 框架之基础准备
Oct 30 PHP
PHP页面实现定时跳转的方法
Oct 31 PHP
PHP使用memcache缓存技术提高响应速度的方法
Dec 26 PHP
php中fsockopen用法实例
Jan 05 PHP
给ECShop添加最新评论
Jan 07 PHP
PHP实现长文章分页实例代码(附源码)
Feb 03 PHP
浅析php静态方法与非静态方法的用法区别
May 17 PHP
PHP实现适用于自定义的验证码类
Jun 15 PHP
php类自动装载、链式操作、魔术方法实现代码
Jul 23 PHP
laravel框架中视图的基本使用方法分析
Nov 23 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 文件夹删除、php清除缓存程序
2009/08/25 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
2014/09/23 PHP
又拍云异步上传实例教程详解
2016/04/19 PHP
简单概括PHP的字符串中单引号与双引号的区别
2016/05/07 PHP
PHP判断表达式中括号是否匹配的简单实例
2016/10/22 PHP
thinkphp5引入公共部分header、footer的方法详解
2018/09/14 PHP
Javascript 学习书 推荐
2009/06/13 Javascript
使用jquery与图片美化checkbox和radio控件的代码(打包下载)
2010/11/11 Javascript
jQuery1.5.1 animate方法源码阅读
2011/04/05 Javascript
jquery插件制作 自增长输入框实现代码
2012/08/17 jQuery
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
2013/05/17 Javascript
jquery插件jquery倒计时插件分享
2013/12/27 Javascript
JQuery的$命名冲突详细解析
2013/12/28 Javascript
js中this的用法实例分析
2015/01/10 Javascript
JavaScript中的立即执行函数表达式介绍
2015/03/15 Javascript
JavaScript中Number.NEGATIVE_INFINITY值的使用详解
2015/06/05 Javascript
JavaScript基于对象去除数组重复项的方法
2016/10/09 Javascript
VueJS全面解析
2016/11/10 Javascript
Javascript使用function创建类的两种方法(推荐)
2016/11/19 Javascript
JavaScript 巧学巧用
2017/05/23 Javascript
详解angularjs中的隔离作用域理解以及绑定策略
2017/05/31 Javascript
微信小程序 蓝牙的实现实例代码
2017/06/27 Javascript
AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)
2017/10/24 Javascript
搭建element-ui的Vue前端工程操作实例
2018/02/23 Javascript
pyqt和pyside开发图形化界面
2014/01/22 Python
Django实现自定义404,500页面教程
2017/03/26 Python
Python实现字符串匹配算法代码示例
2017/12/05 Python
Python matplotlib绘制饼状图功能示例
2019/09/10 Python
Django框架下静态模板的继承操作示例
2019/11/08 Python
python加载自定义词典实例
2019/12/06 Python
个人简历自荐信
2013/12/05 职场文书
省级四好少年事迹材料
2014/01/25 职场文书
体育专业自荐书
2014/05/29 职场文书
2016新教师培训心得体会范文
2016/01/08 职场文书
Vue实现动态查询规则生成组件
2021/05/27 Vue.js
MyBatis配置文件解析与MyBatis实例演示
2022/04/07 Java/Android