tp5.0 模型查询数据的返回类型,分页
一开始用painate()这个函数的时候,发现有的查询方式不能使用这个函数,由此了解到了模型查询和普通查询返回类型的不同
1.原生查询方法
Db::query("select * from shop");
查询成功返回:二维数组
array(2) {
[0]=>
array(5) {
["username"]=>
string(0) ""
["title"]=>
string(10) "java课本"
["comment"]=>
string(22) "java课本课本课本"
["time"]=>
string(19) "2019-02-18 23:12:03"
["id"]=>
int(1)
}
[1]=>
array(5) {
["username"]=>
string(0) ""
["title"]=>
string(1) "c"
["comment"]=>
string(10) "cccccccccc"
["time"]=>
string(19) "2019-02-18 23:12:26"
["id"]=>
int(2)
}
}
查询失败:array(0) { }
二维数组为空
2.查询构造器
select方法
Db::table('shop')->select();
返回的是二维数组,和原生的查询结果一样,查询失败同样返回空数组。
find方法
Db::table('shop')->find();
只能查询一条数据,返回的是第一个查询到的数据,方式是一维数组
array(5) {
["username"] => string(0) ""
["title"] => string(10) "java课本"
["comment"] => string(22) "java课本课本课本"
["time"] => string(19) "2019-02-18 23:12:03"
["id"] => int(1)
}
查询失败:NULL
需要分页的时候:
Db::name('shop')->paginate(10);
需要分页的时候不能用select,因为数组在tp5中是不支持直接分页的,->paginate()的使用者必须是个object类型。
3.模型
首先知道,模型查出来的数据都是对象,要转化为数组的方法是在database.php加上
'resultset_type' => '\think\Collection',
便可以调用->toArray()方法
实际上,因为tp5框架的设计,两种数据在进行数据处理上没有差别
1.get方法
①用来查询一条数据
$test3=Shop::get(1);或者$test3 = Shop::get(['id' => '1']);
echo $test3->time;
返回类型:对象。
通过
$test3=Shop::get(1)->toArray();变为一维数组
②查询失败:返回NULL
2.all方法
① 用来查询一堆数据,toArray()后变为二维数组
② 遍历
foreach ($test3 as $key => $value) {
var_dump($value['time']);//time是字段名字
}
③查询失败
不变为数组返回:} object(think\Collection)#19 (1) { ["items":protected]=> array(0) { } }
变为数组返回:空数组
3.select方法
$test4=Shop::select();
foreach ($test4 as $key ) {
var_dump($key['time']);//time字段
}
使用处理二维数组的方法处理就好了
4.find也可以用
5.分页
使用者必须是对象
模型的分页,官方:
$test6=Shop::paginate(10);
我自己试了下,发现find查询出来的语句也是可以分页的,select就不行了。
tp5.0 模型查询数据的返回类型,分页的更多相关文章
- ThinkPHP5.0框架开发--第8章 TP5.0 模型
ThinkPHP5.0框架开发--第8章 TP5.0 模型 第8章 TP5.0 模型 ================================================= 今日学习 1. ...
- AFNetworking 2.0 获取json数据时,返回 NSLocalizedDescription=Request failed: unacceptable content-type: text/html, 解决方法.
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.responseSe ...
- hibernate框架之-查询结果集返回类型
Hibernate支持HQL和SQL的查询,返回结果支持POJO类型或字段/数组的形式. 开发中用Hibernate进行数据库查询,用的是SQL.原来需要查询一个表的几乎所有字段,所以我使用了addE ...
- Mybatis全部查询遇到的返回类型的小问题
在学习Mybatis3过程中遇到一个小问题,觉得需要注意就把它写下来了 在查询所有数据的时候方法是这样的 public List<User> findAll(){ ..... } 在它的u ...
- ThinkPHP5.0 模型查询操作
1.获取单个数据 //取出主键为1的数据 $user = User::get(1); echo $user->name; // 使用数组查询 $user = User::get(['name' ...
- SQLSERVER 2008 查询数据字段名类型
SELECT * FROM Master..SysDatabases ORDER BY Name SELECT Name,* FROM Master..SysDatabases where Name= ...
- oracle 函数 输入值,查询数据,返回相应处理结果
create or replace function FUN_SEARCH_ORDERBY ( INSTACEID in varchar2,TYE IN varchar2) return varcha ...
- mongdb查询数据并且返回数据条数
var totall; var a = db.db("Magiccat").collection("jishi_content").find().count({ ...
- 【TP3.2 + 其他任何PHP框架】编辑、删除、添加数据,返回原分页 (ajax+form两种方式提交均可以)
1.目的1:在如下的一个页面中,p=2,比如我们删除数据id=13,通过ajax提交{id,p} 这2个参数,就可以了,页面返回json的url参数中原样带上p即可. 2.目的2: 步骤1:在如下页面 ...
随机推荐
- ASP.NET SignalR 与LayIM配合,轻松实现网站客服聊天室(三) 激动人心的时刻到啦,实现1v1聊天
看起来挺简单,细节还是很多的,好,接上一篇,我们已经成功连接singalR服务器了,那么剩下的内容呢,就是一步一步实现聊天功能. 我们先看看缺什么东西 点击好友弹框之后,要给服务器发消息,进入组Gro ...
- stixel-net绘制指标图
需解决问题: 1.离散点进行平滑曲线画法 https://blog.csdn.net/cdqn10086/article/details/70143616 def draw_curve(x,y,img ...
- js 跳转整理
js方式的页面跳转1.window.location.href方式 <script language="javascript" type="text/java ...
- [luoguP4306][JSOI2010]连通数
\[Yeasion\] \[Nein\] 其实我很奇怪为什么我的正解和输出\(N \times N\)的效果是一样的.....嗯,大概是\(RP\)问题吧.... 嗯首先来看一下题目: 题目描述: 度 ...
- watch、computed、methods的区别
1. `computed`属性的结果会被缓存,除非依赖的响应式属性变化才会重新计算.主要当作属性来使用,要return出去一个值:2. `methods`方法表示一个具体的操作,主要书写业务逻辑:3. ...
- Python 学习笔记(五)常用函数
Python内建函数 四舍五入: round() 绝对值: abs() >>> round(1.543,2) 保留两位小数,四舍五入为1.54 1.54 >>> r ...
- ATK系列库说明
初衷 重构和复用是软件的一个古老话题. 在日常的软件项目开发的过程序中,如何保证团队代码的强健,同时在不断变化的需过程中最大限度的保障代码的一致性,是项目开发中的难以控制的,我们可以借助各种源码管理和 ...
- Oracle 序列的创建删除插入
今天学习的是序列的创建蟹盖和删除插入 创建: create Sequence Seq_name increment by n ----序列变化的程度,默认为1,可以为负数表示递减 start ...
- Oracle递归 start with...connect by...prior
prior一侧是父节点 另一侧是子节点 --查询region_id等于4519的节点下面的所有子节点 查找出给定节点的所有子节点 SELECT sr.* FROM spc_region sr wher ...
- Javascript的加载
最新博客站点:欢迎来访 1. 浏览器加载 (1) 同步加载 在网页中,浏览器加载js文件的方式是通过<script>标签.如下所示: //内嵌脚本 <script type= ...