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 相关文章推荐
让你的WINDOWS同时支持MYSQL4,MYSQL4.1,MYSQL5X
Dec 06 PHP
php 伪造本地文件包含漏洞的代码
Nov 03 PHP
php替换超长文本中的特殊字符的函数代码
May 22 PHP
自己在做项目过程中学到的PHP知识收集
Aug 20 PHP
解析PHP中$_FILES的使用以及注意事项
Jul 05 PHP
PHP实现生成唯一编号(36进制的不重复编号)
Jul 01 PHP
PHP中SSO Cookie登录分析和实现
Nov 06 PHP
PHP 中魔术常量的实例详解
Oct 26 PHP
PHP中“=&gt;
Mar 01 PHP
laravel使用Faker数据填充的实现方法
Apr 12 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
May 08 PHP
使用composer命令加载vendor中的第三方类库 的方法
Jul 09 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数组实现无限分类,不使用数据库,不使用递归.
2006/12/09 PHP
一个数据采集类
2007/02/14 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
2012/04/09 PHP
Symfony2针对输入时间进行查询的方法分析
2017/06/28 PHP
PHP绕过open_basedir限制操作文件的方法
2018/06/10 PHP
Bootstrap轮播插件使用代码
2016/10/11 Javascript
javaScript语法总结
2016/11/25 Javascript
从零开始学习Node.js系列教程之SQLite3和MongoDB用法分析
2017/04/13 Javascript
Webpack常见静态资源处理-模块加载器(Loaders)+ExtractTextPlugin插件
2017/06/29 Javascript
Vue header组件开发详解
2018/01/26 Javascript
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
vue2 mint-ui loadmore实现下拉刷新,上拉更多功能
2018/03/21 Javascript
Vue render深入开发讲解
2018/04/13 Javascript
解决angular双向绑定无效果,ng-model不能正常显示的问题
2018/10/02 Javascript
七行JSON代码把你的网站变成移动应用过程详解
2019/07/09 Javascript
Node中对非阻塞I/O、事件循环的知识点总结
2020/01/05 Javascript
[01:28:24]NAVI vs VG Supermajor 败者组 BO3 第三场 6.5
2018/06/06 DOTA
python实现的重启关机程序实例
2014/08/21 Python
Python实现的矩阵类实例
2017/08/22 Python
一篇文章读懂Python赋值与拷贝
2018/04/19 Python
python3 kmp 字符串匹配的方法
2018/07/07 Python
Python matplotlib的使用并自定义colormap的方法
2018/12/13 Python
python支持多线程的爬虫实例
2019/12/21 Python
如何清空python的变量
2020/07/05 Python
pycharm激活方法到2099年(激活流程)
2020/09/22 Python
ProBikeKit新西兰:自行车套件,跑步和铁人三项装备
2017/04/05 全球购物
您的健身减肥和健康饮食专家:vitafy
2017/06/06 全球购物
力学专业毕业生自荐信
2013/11/17 职场文书
考试违纪检讨书
2014/02/02 职场文书
最新大学生创业计划书写作攻略
2014/04/02 职场文书
学校爱心捐款倡议书
2014/05/13 职场文书
实习生矿工检讨书
2014/10/13 职场文书
2014年学生会个人工作总结
2014/11/07 职场文书
2016五一劳动节慰问信
2015/11/30 职场文书
介绍信应该怎么开?
2019/04/03 职场文书
《悲惨世界》:比天空更广阔的是人的心灵
2020/01/16 职场文书