博客
关于我
TP5 判断记录集是不为空
阅读量:261 次
发布时间:2019-03-01

本文共 1684 字,大约阅读时间需要 5 分钟。

需要注意的是,如果要判断数据集是否为空,不能直接使用empty判断,而必须使用数据集对象的isEmpty方法判断,例如:

$users = Db::name('user')->select();if($users->isEmpty()){    echo '数据集为空';}

数据库的查询结果也就是数据集,默认的配置下,数据集的类型是一个二维数组,我们可以配置成数据集类,就可以支持对数据集更多的对象化操作,需要使用数据集类功能,可以配置数据库的resultset_type参数如下:

return [    // 数据库类型    'type'        => 'mysql',    // 数据库连接DSN配置    'dsn'         => '',    // 服务器地址    'hostname'    => '127.0.0.1',    // 数据库名    'database'    => 'thinkphp',    // 数据库用户名    'username'    => 'root',    // 数据库密码    'password'    => '',    // 数据库连接端口    'hostport'    => '',    // 数据库连接参数    'params'      => [],    // 数据库编码默认采用utf8    'charset'     => 'utf8',    // 数据库表前缀    'prefix'      => 'think_',    // 数据集返回类型    'resultset_type' => 'collection',];

返回的数据集对象是think\Collection,提供了和数组无差别用法,并且另外封装了一些额外的方法。

可以直接使用数组的方式操作数据集对象,例如:

// 获取数据集$users = Db::name('user')->select();// 直接操作第一个元素$item  = $users[0];// 获取数据集记录数$count = count($users);// 遍历数据集foreach($users as $user){    echo $user['name'];    echo $user['id'];}

需要注意的是,如果要判断数据集是否为空,不能直接使用empty判断,而必须使用数据集对象的isEmpty方法判断,例如:

$users = Db::name('user')->select();if($users->isEmpty()){    echo '数据集为空';}

Collection类包含了下列主要方法:

方法 描述
isEmpty 是否为空
toArray 转换为数组
all 所有数据
merge 合并其它数据
diff 比较数组,返回差集
flip 交换数据中的键和值
intersect 比较数组,返回交集
keys 返回数据中的所有键名
pop 删除数据中的最后一个元素
shift 删除数据中的第一个元素
unshift 在数据开头插入一个元素
reduce 通过使用用户自定义函数,以字符串返回数组
reverse 数据倒序重排
chunk 数据分隔为多个数据块
each 给数据的每个元素执行回调
filter 用回调函数过滤数据中的元素
column 返回数据中的指定列
sort 对数据排序
shuffle 将数据打乱
slice 截取数据中的一部分

如果只是个别数据的查询需要返回数据集对象,则可以使用

Db::name('user')    ->fetchClass('\think\Collection')    ->select();

官方文档:

5.0   https://www.kancloud.cn/manual/thinkphp5/150164

5.1  https://www.kancloud.cn/manual/thinkphp5_1/354038

转载地址:http://hicx.baihongyu.com/

你可能感兴趣的文章
Nginx代理初探
查看>>
nginx代理地图服务--离线部署地图服务(地图数据篇.4)
查看>>
Nginx代理外网映射
查看>>
Nginx代理模式下 log-format 获取客户端真实IP
查看>>
Nginx代理解决跨域问题(导致图片只能预览不能下载)
查看>>
Nginx代理访问提示ERR_CONTENT_LENGTH_MISMATCH
查看>>
Nginx代理配置详解
查看>>
Nginx代理静态资源(gis瓦片图片)实现非固定ip的url适配网络环境映射ip下的资源请求解决方案
查看>>
Nginx代理静态资源(gis瓦片图片)实现非固定ip的url适配网络环境映射ip下的资源请求解决方案
查看>>
Nginx入门教程-简介、安装、反向代理、负载均衡、动静分离使用实例
查看>>
nginx反向代理
查看>>
Nginx反向代理
查看>>
nginx反向代理、文件批量改名及统计ip访问量等精髓总结
查看>>
Nginx反向代理与正向代理配置
查看>>
Nginx反向代理及负载均衡实现过程部署
查看>>
Nginx反向代理和负载均衡部署指南
查看>>
Nginx反向代理是什么意思?如何配置Nginx反向代理?
查看>>
nginx反向代理解决跨域问题,使本地调试更方便
查看>>
nginx反向代理转发、正则、重写、负摘均衡配置案例
查看>>
Nginx反向代理配置
查看>>