当前位置: 首页 > 编程笔记 >

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

贺季
2023-03-14
本文向大家介绍thinkphp5 模型实例化获得数据对象的教程,包括了thinkphp5 模型实例化获得数据对象的教程的使用技巧和注意事项,需要的朋友参考一下

模型对象和数据对象理解

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()

以上这篇thinkphp5 模型实例化获得数据对象的教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍Spring jdbc中数据库操作对象化模型的实例详解,包括了Spring jdbc中数据库操作对象化模型的实例详解的使用技巧和注意事项,需要的朋友参考一下 Spring jdbc中数据库操作对象化模型的实例详解 Spring Jdbc数据库操作对象化  使用面向对象方式表示关系数据库的操作,实现一个线程安全可复用的对象模型,其顶级父类接口RdbmsOperation.  SqlOp

  • 英文原文:http://emberjs.com/guides/object-model/classes-and-instances/ 定义一个新的Ember的类,只需要调用Ember.Object的extend()方法即可: 1 2 3 4 5 App.Person = Ember.Object.extend({ say: function(thing) { alert(thing)

  • 为方便框架的后续升级,thinkcmf与thinkphp框架模型操作方法完全一致。 所以这里是支持thinkphp原生的M方法和D方法来实例化模型; 实例化模型的好处: 可以实现自动完成,自动校验功能。使用模型封装的方法。分离M层和C层; M方法: M(['模型名'],['数据表前缀'],['数据库连接信息']); //实例化模型 $User=M('User'); // 执行具体的数据操作 $Us

  • 本文向大家介绍面向对象的数据模型,包括了面向对象的数据模型的使用技巧和注意事项,需要的朋友参考一下 面向对象的数据模型基于现实情况。这些情况表示为具有不同属性的对象。所有这些对象之间都具有多个关系。 面向对象的数据模型的要素 对象 现实世界中的实体和情况在面向对象的数据库模型中表示为对象。 属性和方法 每个对象都有某些特征。这些使用属性表示。对象的行为使用“方法”表示。 类 使用类将相似的属性和方

  • 本文向大家介绍对象关系数据模型,包括了对象关系数据模型的使用技巧和注意事项,需要的朋友参考一下 对象关系模型是面向对象的数据库模型和关系数据库模型的组合。因此,它像面向对象的模型一样支持对象,类,继承等,并支持数据类型,表格结构等,例如关系数据模型。 对象关系数据模型的主要目标之一是缩小关系数据库和许多编程语言(例如C ++,C#,Java等)中经常使用的面向对象实践之间的差距。 对象关系数据模型

  • 上节为您介绍了如何定义模型以及自动与手动关联数据表,本节将为您讲解模型实例化的方法。我们定义好了模型,最终是被其他模块所引用,所以不论控制器还是其他模型,都有可能需要引用某个模型文件。GF中实例化模型类的方法为D函数: $UserModel = D('User.User'); //实例化User分组下的UserModel类