ThinkPHP3.2.3学习笔记6---专题---数据分页
http://document.thinkphp.cn/manual_3_2.html#data_page
thinkphp3.2.3中分类的功能调用的文件$THINKPHP_HOME/ThinkPHP/Library/Think/Page.class.php,这个文件只有150行左右,不复杂,比较容易看懂,方便自己修改,也可以在此基础上进行新功能的扩展。
控制器
$THINKPHP_HOME/Application/Home/Controller/PageController.class.php
<?php
namespace Home\Controller;
use Think\Controller;
class PageController extends Controller{
//注意,这里只能用D('User') 不能用 M('User'),因为这里是需要实例化某个具体的模型类User
protected $userObj; public function getUserObj() {
return $this->userObj = D('page');
} //第一种:利用Page类和limit方法进行分页
public function pageLimit(){
$this->userObj = $this->getUserObj(); $data = $this->userObj->pageLimit(); $list = $data['list'];
$page = $data['page']; //var_dump($data); $this->assign('list', $list);// 赋值数据集
$this->assign('page', $page);// 赋值分页输出
$this->display('Page:page'); // 输出模板
} //第一种:利用Page类和page方法进行分页
public function pagePage(){
$this->userObj = $this->getUserObj(); $data = $this->userObj->pagePage(); $list = $data['list'];
$page = $data['page']; //var_dump($data); $this->assign('list', $list);// 赋值数据集
$this->assign('page', $page);// 赋值分页输出
$this->display('Page:page'); // 输出模板
}
}
?>
模型$THINKPHP_HOME/Application/Home/Model/PageModel.class.php
<?php
namespace Home\Model;
use Think\Model;
class PageModel extends Model {
protected $trueTableName = '99game_user';
protected $userObj; public function getUserObj() {
return $this->userObj = M('User', '99game_');
} //第一种:利用Page类和limit方法进行分页
public function pageLimit() {
$User = $this->getUserObj();
$count = $User->where('level=1')->count();// 查询满足要求的总记录数
$Page = new \Think\Page($count, 3);// 实例化分页类 传入总记录数和每页显示的记录数(3) //配置theme是用来设置分页要显示哪些数据项的,比如%HEADER%表示“共XX条记录”
$Page->setConfig('theme', '%HEADER% %NOW_PAGE%/%TOTAL_PAGE% %FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%');
$show = $Page->show();// 分页显示输出 // 进行分页数据查询 注意limit方法的参数要使用Page类的属性
$list = $User->where('level=1')->order('user_id desc')->limit($Page->firstRow.','.$Page->listRows)->select();
echo "sql: " . $User->_sql() . "\n"; return array('list' => $list, 'page' => $show);
} //第一种:利用Page类和page方法进行分页
public function pagePage() {
$User = $this->getUserObj(); // 实例化User对象
// 进行分页数据查询 注意page方法的参数的前面部分是当前的页数使用 $_GET[p]获取
$count = $User->where('level=1')->count();// 查询满足要求的总记录数
$Page = new \Think\Page($count, 3);// 实例化分页类 传入总记录数和每页显示的记录数
$show = $Page->show();// 分页显示输出 $list = $User->where('level=1')->order('user_id desc')->page($_GET['p'].',3')->select(); return array('list' => $list, 'page' => $show);
}
}
?>
模板$THINKPHP_HOME/Application/Home/View/Page/page.html
数据列表<br />
<volist name="list" id="data" key="k">
{$k} : {$key} : {$data.user_id} : {$data.email} : {$data.token}<br />
</volist> 分页数据<br />
{$page}
在浏览器中分别输入以下两个网址进行测试,可以输出正确的结果
http://localhost:81/research/thinkphp_3.2.3_full/index.php/Home/Page/pageLimit
http://localhost:81/research/thinkphp_3.2.3_full/index.php/Home/Page/pagePage
延伸阅读:
http://www.baidu.com/s?wd=thinkphp3.2.3%20分页
http://www.sogou.com/web?query=thinkphp3.2.3%20分页
https://www.so.com/index.php?q=thinkphp3.2.3%20分页
ThinkPHP3.2.3学习笔记6---专题---数据分页的更多相关文章
- 微信小程序开发:学习笔记[9]——本地数据缓存
微信小程序开发:学习笔记[9]——本地数据缓存 快速开始 说明 本地数据缓存是小程序存储在当前设备上硬盘上的数据,本地数据缓存有非常多的用途,我们可以利用本地数据缓存来存储用户在小程序上产生的操作,在 ...
- springmvc学习笔记(18)-json数据交互
springmvc学习笔记(18)-json数据交互 标签: springmvc springmvc学习笔记18-json数据交互 springmvc进行json交互 环境准备 加入json转换的依赖 ...
- MyCat 学习笔记 第九篇.数据分片 之 数值分布
1 应用场景 Mycat 自带了多套数据分片的机制,其实根据数值分片也是比较简单,其实这个和数据取摸是类似的实现. 优.缺点同上一篇 2 环境说明 参考 <MyCat 学习笔记>第六篇. ...
- Android学习笔记之JSON数据解析
转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...
- ThinkPHP3.2.3学习笔记5---模板(一)
一.模板简介 此文中的学习笔记部分资料是来自于thinkphp官方文档,http://document.thinkphp.cn/manual_3_2.html#template 本章的内容主要讲述了如 ...
- 《C#并发编程经典实例》学习笔记—3.1 数据的并行处理
问题 有一批数据,需要对每个元素进行相同的操作.该操作是计算密集型的,需要耗费一定的时间. 解决方案 常见的操作可以粗略分为 计算密集型操作 和 IO密集型操作.计算密集型操作主要是依赖于CPU计算, ...
- salesforce 零基础开发入门学习(八)数据分页简单制作
本篇介绍通过使用VF自带标签和Apex实现简单的数据翻页功能. 代码上来之前首先简单介绍一下本篇用到的主要知识: 1.ApexPages命名空间 此命名空间下的类用于VF的控制. 主要的类包括但不限于 ...
- OSG学习:LOD、数据分页、动态调度
LOD(level of detail):是指根据物体模型的结点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算.在OSG的场景结点组织结 ...
- ThinkPHP3.2.3学习笔记1---控制器
ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的.最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布.ThinkPHP从诞生以来一 ...
随机推荐
- c#生成试卷。。。
.net下,操作Word的插件有NPOI,Spire,一版大家经常用的是NPOI,我在着手开发的时候,优先考虑的也是NPOI,然而时间比较着急,没有找到NPOI支持2003版本, 就放弃了,从网上发行 ...
- iOS Dev (26) 初步了解下UIColor的最常用知识
作者:CSDN 大锐哥 地址:http://blog.csdn.net/prevention - 内置的颜色有啥? // Some convenience methods to create colo ...
- cocos2d-js 运行动画
1.添加动画缓存 //添加动画缓存 cc.spriteFrameCache.addSpriteFrames(res.bug_plist); this.spriteSheet = new cc.Spri ...
- POJO对象建立规则
1.所有POJO类属性必须使用包装数据类型,RPC方法的返回值和参数必须使用包装数据类型. 说明:POJO类属性没有初值是提醒使用者在使用时,必须自己显示的进行赋值,任何NPE问题,或者入库检查,都由 ...
- Android Button Maker(在线生成android shape xml文件的工具),真方便!
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/scry5566/article/details/25379275 直接上地址:http ...
- TabHost的坑
问题1. 运行Activity的时候出现Your content must have a TabHost whose id attribute is ‘android.R.id.tabhost’ 问 ...
- linux4 分区
分区 对硬盘分区:安装操作系统的时候有一个分区过程,新增加硬盘也会涉及到分区,如何给操作系统新增一台硬件设备. 启动操作系统. Home是当前账号的根目录,Computer是/系统根目录. ~是当前账 ...
- linux常用命令与技巧(不断添加与更新)
linux常用命令:linux命令有很多,不去做全面的介绍与总结,这里只是记录在使用linux过程中遇到的常用命令和技巧,以便以后查阅. # mkdir -p /usr/local/src/ ##递归 ...
- Gradients渐变属性
一个很不错的网站http://www.w3schools.com/css/css3_gradients.asp http://www.w3cplus.com/css3/new-css3-linear- ...
- 自动化测试框架selenium+java+TestNG——TestNG详解
TestNG按顺序执行case package com.testngDemo; import org.testng.annotations.AfterClass; import org.testng. ...