本篇文章介绍了ThinkPHP5数据对象之查询数据Getdata方法的使用方法,希望对学习thinkphp的朋友有帮助!
ThinkPHP5数据对象之查询数据Getdata方法的使用
自Tp5框架上线以来,与之前的3.2版还是有了很大的改变。个人比较喜欢tp5的模型实例化这一块,TP5取消了自动实例化模型的M方法,转而使用了新的实例化模型方法,越来越接近面向对象了。以前用tp3.2中的M方法查询出来的都是数组,而现在的tp5模型操作的返回的都是对象。今天聊下tp5中的数据对象,什么是数据对象?数据对象不了解,模型对象应该知道吧,就是模型类实例化后获得的对象。
模型对象和数据对象理解
1. 模型对象:模型类实例化后获得的对象;
2. 数据对象:获取到了原始数据的模型对象;
原始数据:存放在模型对象的$data属性中($data是一个数组)
数据对象:说到底,还是一个模型对象,千万不要认为是一个全新的对象
DB操作返回是数组;模型直接操作返回是对象。
很多时候我们用模型查询数据时,返回的是当前模型的对象实例,像get或者find方法返回的是当前模型的对象实例,但是我们并不想要这个对象,而是想要这个对象里面的数据["data":protected]。下面一个简单实例讲解如何或者data数据。
先创建一个自定义模型类,继承自Model类
因为Model类是抽象类,必须定义他的子类才可以使用
模型文件:/application/index/model/Staff.php
<?php namespace app\index\model;//导入模型类 use think\model;class Staff extends model { //自定义模型类代码}
控制器文件: Index.php
<?php namespace app\index\controller;//导入模型类 use app\index\model\Staff;class Index { public function index(){ //1.创建模型对象$model //此时的模型对象仅仅完成了与特定数据表的绑定 //理论上讲,仍是一个没有任何数据的空模型 $model = new Staff(); //2.创建数据源,供创建数据对象使用 $data = []; $data['id'] = 1001; $data['name'] = 'Peter'; $data['age'] = 26; //3.data()方法完成前面模型对象的$data属性赋值 //使模型对象转换成数据对象,现在$model 已经是数据对象啦 $model -> data($data); //4.getData()方法获取数据对象原始数据$data $result = $model -> getData(); //5.查看数据对象原始数据:$data属性(数组类型) dump($result); }}
现在打开浏览器运行Index控制器的index方法:
//以下就是数据对象的原始数据//其实就是将数据对象中$data属性值输出array(3) { ["id"] => int(1001) ["name"] => string(5) "Peter" ["age"] => int(26)}
现在是输出了全部的原始数据,如果我们只需要其中一个元素,怎么做呢?
getData方法参数传入键名字符串,可获取指定的单个原始数据元素
我们仅修改上面控制器代码第四步操作即可:
//4.getData()方法获取数据对象原始数据$data['name']的值$result = $model -> getData('name');
这样即可获取原始数据$data中的name键名对应的值:
string(5) "Peter"
4. 总结:
这个方法很灵活,即可获取完整的原始数据,也可以获取其中的一个数据。在开发也是最常用的方法,特别是在模板制作中用得很多,一定要熟练掌握。
(推荐教程:thinkphp教程)
以上是ThinkPHP5数据对象之查询数据Getdata方法的使用的详细内容。更多信息请关注PHP中文网其他相关文章!

本文讨论了ThinkPHP的内置测试框架,突出了其关键功能(例如单元和集成测试),以及它如何通过早期的错误检测和改进的代码质量来增强应用程序可靠性。

本文讨论了在无服务器体系结构中使用ThinkPHP的关键注意事项,专注于性能优化,无状态设计和安全性。它突出了诸如成本效率和可扩展性之类的收益,但也应对挑战

本文讨论了在ThinkPHP微服务中实施服务发现和负载平衡,重点是设置,最佳实践,集成方法和推荐工具。[159个字符]

ThinkPHP的IOC容器提供了高级功能,例如懒惰加载,上下文绑定和方法注入PHP App中有效依赖性管理的方法。Character计数:159

ThinkPHP具有轻巧的设计,MVC架构和可扩展性。它通过各种功能提高可扩展性,加快开发并提高安全性。

本文概述了使用ThinkPhp和RabbitMQ构建分布式任务队列系统,重点是安装,配置,任务管理和可扩展性。关键问题包括确保高可用性,避免常见的陷阱,例如不当


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能