thinkphp5 模型实例化 获得数据对象

本文介绍了ThinkPHP5框架中模型对象和数据对象的概念。模型对象是模型类实例化后得到的,而数据对象是包含了原始数据的模型对象,其数据存储在$data属性中。需要注意的是,数据对象本质上仍然是模型对象,不是独立的新对象。DB操作通常返回数组,而模型操作则返回对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模型对象和数据对象理解
1. 模型对象:模型类实例化后获得的对象;
2. 数据对象:获取到了原始数据的模型对象;
原始数据:存放在模型对象的$data属性中($data是一个数组)
数据对象:说到底,还是一个模型对象,千万不要认为是一个全新的对象

DB操作返回是数组。
模型直接操作返回是对象。

//该对象共计有28个受保护属性,必须在本类或子类中使用,外部不能直接使用
object(app\index\model\Staff)#5 (28) {

  //数据库配置数组
  ["connection":protected] => array(0) {
  }
  //数据库查询对象,负责最终完成对数据库的操作
  ["query":protected] => NULL
  //模型名称 ,创建时自动赋值
  ["name":protected] => string(5) "Staff"
  //与模型绑定的数据表的完整名称(包括前缀的表名,如:tp5_staff)
  ["table":protected] => NULL
  //用命名空间表示的、当前的模型类名:Staff
  ["class":protected] => string(21) "app\index\model\Staff"
  //出错时显示的信息
  ["error":protected] => NULL
  //字段验证规则
  ["validate":protected] => NULL
  //数据表主键
  ["pk":protected] => NULL
  //数据表字段名列表(与数据表对应)
  ["field":protected] => array(0) {
  }
  //只读字段列表
  ["readonly":protected] => array(0) {
  }
  //显示字段列表
  ["visible":protected] => array(0) {
  }
  //隐藏属性字段列表
  ["hidden":protected] => array(0) {
  }
  //追加属性列表
  ["append":protected] => array(0) {
  }
  //与数据表字段对应的信息列表(极其重要)
  ["data":protected] => array(0) {
  }
  //字段修改信息列表
  ["change":protected] => array(0) {
  }
  //自动完成列表
  ["auto":protected] => array(0) {
  }
  //新增自动完成列表
  ["insert":protected] => array(0) {
  }
  //更新自动完成列表
  ["update":protected] => array(0) {
  }
// 是否需要自动写入时间戳 如果设置为字符串 则表示时间字段的类型
  ["autoWriteTimestamp":protected] => bool(false)
  //设置表中:创建时间字段的名称
  ["createTime":protected] => string(11) "create_time"
    //设置表中:更新时间字段的名称
  ["updateTime":protected] => string(11) "update_time"
    //设置表中:时间字段的格式
  ["dateFormat":protected] => string(11) "Y-m-d H:i:s"
  //数据表中各字段类型定义
  ["type":protected] => array(0) {
  }
  //是否是:更新操作
  ["isUpdate":protected] => bool(false)
  //更新条件
  ["updateWhere":protected] => NULL
  //当前执行的关联条件
  ["relation":protected] => NULL
  //验证失败是否抛出异常
  ["failException":protected] => bool(false)
//全局查询范围设置
  ["useGlobalScope":protected] => bool(true)
}
当我们用select()进行查询得出的结果无法toarray的时候,下面的方法就用得上了。
对象类型转换数组
打开 database.php 增加或修改参数
'resultset_type' => '\think\Collection',
即可连贯操作

model('user')->select()->toArray()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值