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


Posted in PHP onOctober 18, 2019

模型对象和数据对象理解

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 模型实例化获得数据对象的教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP4实际应用经验篇(1)
Oct 09 PHP
php下实现一个阿拉伯数字转中文数字的函数
Jul 10 PHP
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
Mar 07 PHP
解析将多维数组转换为支持curl提交的一维数组格式
Jul 08 PHP
php保存二进制原始数据为图片的程序代码
Oct 14 PHP
php常见的魔术方法详解
Dec 25 PHP
在html文件中也可以执行php语句的方法
Apr 09 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
Mar 04 PHP
php PDO异常处理详解
Nov 20 PHP
php双层循环(九九乘法表)
Oct 23 PHP
thinkPHP框架动态配置用法实例分析
Jun 14 PHP
php微信公众号开发之关键词回复
Oct 20 PHP
使用tp框架和SQL语句查询数据表中的某字段包含某值
Oct 18 #PHP
tp5 sum某个字段相加得到总数的例子
Oct 18 #PHP
基于laravel belongsTo使用详解
Oct 18 #PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
Oct 18 #PHP
Laravel 框架返回状态拦截代码
Oct 18 #PHP
laravel 解决groupBy时出现的错误 isn't in Group By问题
Oct 17 #PHP
Mac下关于PHP环境和扩展的安装详解
Oct 17 #PHP
You might like
PHP HTML代码串截取代码
2008/12/29 PHP
PHP字符串长度计算 - strlen()函数使用介绍
2013/10/15 PHP
windows中为php安装mongodb与memcache
2015/01/06 PHP
PHP 数组操作详解【遍历、指针、函数等】
2020/05/13 PHP
JQueryEasyUI datagrid框架的基本使用
2013/04/08 Javascript
用javascript关闭本窗口技巧小结
2014/09/05 Javascript
JS+CSS实现Div弹出窗口同时背景变暗的方法
2015/03/04 Javascript
js中的内部属性与delete操作符介绍
2015/08/10 Javascript
js内置对象处理_打印学生成绩单的简单实现
2016/09/24 Javascript
简单实现node.js图片上传
2016/12/18 Javascript
jquery easyui dataGrid动态改变排序字段名的方法
2017/03/02 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
Node.JS文件系统解析实例详解
2017/05/15 Javascript
JavaScript注册时密码强度校验代码
2017/06/30 Javascript
Angularjs的启动过程分析
2017/07/18 Javascript
在vue项目中使用Nprogress.js进度条的方法
2018/01/31 Javascript
JS原生瀑布流效果实现
2019/04/26 Javascript
解决vue自定义全局消息框组件问题
2019/11/22 Javascript
[03:05]DOTA2英雄基础教程 嗜血狂魔
2013/12/10 DOTA
Python Socket使用实例
2017/12/18 Python
Python实现检测文件MD5值的方法示例
2018/04/11 Python
tensorflow 1.0用CNN进行图像分类
2018/04/15 Python
用python爬取租房网站信息的代码
2018/12/14 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
2019/09/06 Python
如何使用Python处理HDF格式数据及可视化问题
2020/06/24 Python
python字典通过值反查键的实现(简洁写法)
2020/09/30 Python
CSS的pointer-events属性详细介绍(作用和注意事项)
2014/04/23 HTML / CSS
从一次项目重构说起CSS3自定义变量在项目的使用方法
2021/03/01 HTML / CSS
Html5之自定义属性(data-,dataset)
2019/11/19 HTML / CSS
澳大利亚网上玩具商店:Mr Toys Toyworld
2018/03/25 全球购物
汉米尔顿手表官网:Hamilton
2020/09/13 全球购物
网友共享的几个面试题关于Java和Unix等方面的
2016/09/08 面试题
十一个高级MySql面试题
2014/10/06 面试题
2014年行风建设工作总结
2014/12/01 职场文书
2015年大学生暑期实习报告
2015/07/13 职场文书
前端vue+express实现文件的上传下载示例
2022/02/18 Vue.js