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中GET变量的使用
Oct 09 PHP
图书管理程序(三)
Oct 09 PHP
简单的过滤字符串中的HTML标记
Dec 25 PHP
php 方便水印和缩略图的图形类
May 21 PHP
建站常用13种PHP开源CMS比较
Aug 23 PHP
php入门学习知识点六 PHP文件的读写操作代码
Jul 14 PHP
php.ini 配置文件的深入解析
Jun 17 PHP
百度工程师讲PHP函数的实现原理及性能分析(三)
May 13 PHP
分享php分页的功能模块
Jun 16 PHP
php实现水印文字和缩略图的方法示例
Dec 29 PHP
PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function
Feb 05 PHP
PHP递归实现汉诺塔问题的方法示例
Nov 25 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垃圾回收机制简单说明
2010/07/22 PHP
PHP中去掉字符串首尾空格的方法
2012/05/19 PHP
thinkphp中session和cookie无效的解决方法
2014/12/19 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
2020/08/24 PHP
JQuery处理json与ajax返回JSON实例代码
2014/01/03 Javascript
jQuery使用ajaxSubmit()提交表单示例
2014/04/04 Javascript
javascript如何操作HTML下拉列表标签
2015/08/20 Javascript
JS实现探测网站链接的方法【测试可用】
2016/11/08 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
2018/08/19 Javascript
vue-cli3脚手架的配置及使用教程
2018/08/28 Javascript
微信小程序template模板与component组件的区别和使用详解
2019/05/22 Javascript
JS使用正则表达式判断输入框失去焦点事件
2019/10/16 Javascript
Angular之jwt令牌身份验证的实现
2020/02/14 Javascript
js中forEach,for in,for of循环的用法示例小结
2020/03/14 Javascript
[03:01]DOTA2英雄基础教程 露娜
2014/01/07 DOTA
Python下载指定页面上图片的方法
2016/05/12 Python
python基础while循环及if判断的实例讲解
2017/08/25 Python
Python mutiprocessing多线程池pool操作示例
2019/01/30 Python
Django 使用easy_thumbnails压缩上传的图片方法
2019/07/26 Python
Python 实现向word(docx)中输出
2020/02/13 Python
python itsdangerous模块的具体使用方法
2020/02/17 Python
Python 调用有道翻译接口实现翻译
2020/03/02 Python
Django Model中字段(field)的各种选项说明
2020/05/19 Python
Pytorch 图像变换函数集合小结
2021/02/01 Python
详解HTML5中的标签
2015/06/19 HTML / CSS
基于IE10/HTML5 开发
2013/04/22 HTML / CSS
La Redoute英国官网:法国时尚品牌
2017/04/27 全球购物
装修施工安全责任书
2014/07/24 职场文书
初中生庆国庆演讲稿范文2014
2014/09/25 职场文书
2014副镇长民主生活会个人对照检查材料思想汇报
2014/09/30 职场文书
2014镇党委书记党建工作汇报材料
2014/11/02 职场文书
2014年收银工作总结
2014/11/13 职场文书
医生个人年度总结
2015/02/28 职场文书
解决vue自定义组件@click点击失效问题
2022/04/30 Vue.js