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 相关文章推荐
Get或Post提交值的非法数据处理
Oct 09 PHP
PHP教程 基本语法
Oct 23 PHP
php隐藏IP地址后两位显示为星号的方法
Nov 21 PHP
php获取本周开始日期和结束日期的方法
Mar 09 PHP
php类的扩展和继承用法实例
Jun 20 PHP
php生成固定长度纯数字编码的方法
Jul 09 PHP
php有效防止同一用户多次登录
Nov 19 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
Dec 18 PHP
php metaphone()函数及php localeconv() 函数实例解析
May 15 PHP
Yii全局函数用法示例
Jan 22 PHP
详解PHP素材图片上传、下载功能
Apr 12 PHP
php+laravel依赖注入知识点总结
Nov 04 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
re0第二季蕾姆被制作组打入冷宫!艾米莉亚女主扶正,原因唏嘘
2020/04/02 日漫
在apache下限制每个虚拟主机的并发数!!!!
2006/10/09 PHP
PHP通用分页类page.php[仿google分页]
2008/08/31 PHP
基于PHP编程注意事项的小结
2013/04/27 PHP
firefo xml 读写实现js代码
2009/06/11 Javascript
javascript dom 基本操作小结
2010/04/11 Javascript
javascript-简单的计算器实现步骤分解(附图)
2013/05/30 Javascript
用js判断是否为360浏览器的实现代码
2015/01/15 Javascript
javascript 闭包详解
2015/07/02 Javascript
JavaScript取得WEB安全颜色列表的方法
2015/07/14 Javascript
基于javascript实现全国省市二级联动下拉选择菜单
2016/01/28 Javascript
浅谈JS继承_寄生式继承 &amp; 寄生组合式继承
2016/08/16 Javascript
String字符串截取的四种方式总结
2016/11/28 Javascript
nodejs实现发出蜂鸣声音(系统报警声)的方法
2017/01/18 NodeJs
通过jquery toggleClass()属性制作文章段落更改背景颜色
2018/05/21 jQuery
Angular项目如何升级至Angular6步骤全纪录
2018/09/03 Javascript
JQuery获取元素尺寸、位置及页面滚动事件应用示例
2019/05/14 jQuery
js实现的格式化数字和金额功能简单示例
2019/07/30 Javascript
Python正则表达式匹配HTML页面编码
2015/04/08 Python
Python命令行参数解析模块optparse使用实例
2015/04/13 Python
Python2.x和3.x下maketrans与translate函数使用上的不同
2015/04/13 Python
python提取页面内url列表的方法
2015/05/25 Python
浅析Python中的多条件排序实现
2016/06/07 Python
使用requests库制作Python爬虫
2018/03/25 Python
Python读写文件基础知识点
2019/06/10 Python
python获取依赖包和安装依赖包教程
2020/02/13 Python
python Shapely使用指南详解
2020/02/18 Python
Django ModelForm操作及验证方式
2020/03/30 Python
校园自助餐厅的创业计划书
2013/12/26 职场文书
幼儿园运动会入场词
2014/02/10 职场文书
政府信息公开实施方案
2014/05/09 职场文书
改进作风怎么办发言材料
2014/08/17 职场文书
中学感恩教育活动总结
2015/05/05 职场文书
中学生国庆节演讲稿2015
2015/07/30 职场文书
详解mysql三值逻辑与NULL
2021/05/19 MySQL
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers