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 和 MySQL 开发的 8 个技巧
Jan 02 PHP
Discuz板块横排显示图片的实现方法
May 28 PHP
PHP 遍历文件实现代码
May 04 PHP
php的hash算法介绍
Feb 13 PHP
PHP CURL获取返回值的方法
May 04 PHP
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
Jun 23 PHP
yii实现级联下拉菜单的方法
Jul 31 PHP
PHP两种快速排序算法实例
Feb 15 PHP
PHP实现C#山寨ArrayList的方法
Jul 16 PHP
zen cart实现订单中增加paypal中预留电话的方法
Jul 12 PHP
php对接java现实加签验签的实例
Nov 25 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
Feb 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
全国FM电台频率大全 - 30 宁夏回族自治区
2020/03/11 无线电
用PHP动态创建Flash动画
2006/10/09 PHP
修改apache配置文件去除thinkphp url中的index.php
2014/01/17 PHP
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
2014/10/22 PHP
smarty简单分页的实现方法
2014/10/27 PHP
php递归遍历删除文件的方法
2015/04/17 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
才发现的超链接js导致网页中GIF动画停止的解决方法
2007/11/02 Javascript
javascript 验证日期的函数
2010/03/18 Javascript
用JavaScript修改CSS属性的代码
2013/05/06 Javascript
jquery仿搜索自动联想功能代码
2014/05/23 Javascript
vue实现表格数据的增删改查
2017/07/10 Javascript
简单了解vue.js数组的常用操作
2019/06/17 Javascript
vuex 动态注册方法 registerModule的实现
2019/07/03 Javascript
基于jsbarcode 生成条形码并将生成的条码保存至本地+源码
2020/04/27 Javascript
JavaScript中作用域链的概念及用途讲解
2020/08/06 Javascript
[04:07]显微镜下的DOTA2第八期——英雄复活动作
2014/06/24 DOTA
Python使用py2exe打包程序介绍
2014/11/20 Python
python实现给微信公众号发送消息的方法
2017/06/30 Python
Python实现采用进度条实时显示处理进度的方法
2017/12/19 Python
pandas 两列时间相减换算为秒的方法
2018/04/20 Python
Django + Uwsgi + Nginx 实现生产环境部署的方法
2018/06/20 Python
python tkinter实现屏保程序
2019/07/30 Python
用Python画小女孩放风筝的示例
2019/11/23 Python
css3简单练习实现遨游浏览器logo的绘制
2013/01/30 HTML / CSS
伊芙丽官方旗舰店:中国淑女一线品牌
2017/12/01 全球购物
J2EE相关知识面试题
2013/08/26 面试题
2014年六一儿童节演讲稿
2014/05/23 职场文书
企业党员个人自我评价
2014/09/20 职场文书
高一学年自我鉴定范文(3篇)
2014/09/26 职场文书
2014年环境卫生工作总结
2014/11/24 职场文书
会计求职信怎么写
2015/03/20 职场文书
毕业典礼致辞
2015/07/29 职场文书
2016年度优秀辅导员事迹材料
2016/02/26 职场文书
小程序wx.getUserProfile接口的具体使用
2021/06/02 Javascript
JavaCV实现照片马赛克效果
2022/01/22 Java/Android