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 相关文章推荐
用文本文件制作留言板提示(下)
Oct 09 PHP
PHP 解决utf-8和gb2312编码转换问题
Mar 18 PHP
PHP实现远程下载文件到本地
May 17 PHP
PHP检测用户语言的方法
Jun 15 PHP
php bootstrap实现简单登录
Mar 08 PHP
PHP安装GeoIP扩展根据IP获取地理位置及计算距离的方法
Jul 01 PHP
php使用PDO获取结果集的方法
Feb 16 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
Jun 30 PHP
php读取本地json文件的实例
Mar 07 PHP
PHP实现的获取文件mimes类型工具类示例
Apr 08 PHP
php往mysql中批量插入数据实例教程
Dec 12 PHP
Laravel框架实现的使用smtp发送邮件功能示例
Mar 12 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
浅析memcache启动以及telnet命令详解
2013/06/28 PHP
php is_writable判断文件是否可写实例代码
2016/10/13 PHP
php.ini中date.timezone设置详解
2016/11/20 PHP
PHP获取对象属性的三种方法实例分析
2019/01/03 PHP
基于laravel Request的所有方法详解
2019/09/29 PHP
PHP接口类(interface)的定义、特点和应用示例
2020/05/18 PHP
DIV+CSS+JS不间断横向滚动实现代码
2013/03/19 Javascript
浅谈Javascript Base64 加密解密
2014/12/28 Javascript
JavaScript中判断函数、变量是否存在
2015/06/10 Javascript
一道关于JavaScript变量作用域的面试题
2016/03/08 Javascript
jQuery过滤选择器经典应用
2016/08/18 Javascript
JS实现根据用户输入分钟进行倒计时功能
2016/11/14 Javascript
微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
2016/12/14 Javascript
js数字舍入误差以及解决方法(必看篇)
2017/02/28 Javascript
Vue.js仿Metronic高级表格(一)静态设计
2017/04/17 Javascript
基于es6三点运算符的使用方法(实例讲解)
2017/10/12 Javascript
JS实现数组的增删改查操作示例
2018/08/29 Javascript
jQuery 获取除某指定对象外的其他对象 ( :not() 与.not())
2018/10/10 jQuery
js数据类型转换与流程控制操作实例分析
2019/12/18 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
解决nuxt页面中mounted、created、watch执行两遍的问题
2020/11/05 Javascript
python docx 中文字体设置的操作方法
2018/05/08 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
Django基础知识 URL路由系统详解
2019/07/18 Python
python不同系统中打开方法
2020/06/23 Python
MUGLER官方网站:蒂埃里·穆勒香水
2019/11/26 全球购物
西柏坡导游词
2015/02/05 职场文书
2015年员工工作表现评语
2015/03/25 职场文书
党员“一帮一”活动总结
2015/05/07 职场文书
昆虫记读书笔记
2015/06/26 职场文书
2016年“我们的节日·中秋节”活动总结
2016/04/05 职场文书
干货:我将这样书写我的演讲稿!
2019/05/09 职场文书
2019幼儿园感恩节活动策划书
2019/11/28 职场文书
Nest.js参数校验和自定义返回数据格式详解
2021/03/29 Javascript
使用Pytorch训练two-head网络的操作
2021/05/28 Python
在pycharm中无法import所安装的库解决方案
2021/05/31 Python