本篇文章介紹了thinkphp5數(shù)據(jù)對象之查詢數(shù)據(jù)getdata方法的使用方法,希望對學習thinkphp的朋友有幫助!
ThinkPHP5數(shù)據(jù)對象之查詢數(shù)據(jù)Getdata方法的使用
自Tp5框架上線以來,與之前的3.2版還是有了很大的改變。個人比較喜歡tp5的模型實例化這一塊,TP5取消了自動實例化模型的M方法,轉(zhuǎn)而使用了新的實例化模型方法,越來越接近面向?qū)ο?/b>了。以前用tp3.2中的M方法查詢出來的都是數(shù)組,而現(xiàn)在的tp5模型操作的返回的都是對象。今天聊下tp5中的數(shù)據(jù)對象,什么是數(shù)據(jù)對象?數(shù)據(jù)對象不了解,模型對象應該知道吧,就是模型類實例化后獲得的對象。
模型對象和數(shù)據(jù)對象理解
1. 模型對象:模型類實例化后獲得的對象;
立即學習“PHP免費學習筆記(深入)”;
2. 數(shù)據(jù)對象:獲取到了原始數(shù)據(jù)的模型對象;
原始數(shù)據(jù):存放在模型對象的$data屬性中($data是一個數(shù)組)
數(shù)據(jù)對象:說到底,還是一個模型對象,千萬不要認為是一個全新的對象
DB操作返回是數(shù)組;模型直接操作返回是對象。
很多時候我們用模型查詢數(shù)據(jù)時,返回的是當前模型的對象實例,像get或者find方法返回的是當前模型的對象實例,但是我們并不想要這個對象,而是想要這個對象里面的數(shù)據(jù)[“data”:protected]。下面一個簡單實例講解如何或者data數(shù)據(jù)。
先創(chuàng)建一個自定義模型類,繼承自Model類
因為Model類是抽象類,必須定義他的子類才可以使用
模型文件:/application/index/model/Staff.php
<?php namespace appindexmodel;//導入模型類 use thinkmodel;class Staff extends model { //自定義模型類代碼}
控制器文件: Index.php
<?php namespace appindexcontroller;//導入模型類 use appindexmodelStaff;class Index { public function index(){ //1.創(chuàng)建模型對象$model //此時的模型對象僅僅完成了與特定數(shù)據(jù)表的綁定 //理論上講,仍是一個沒有任何數(shù)據(jù)的空模型 $model = new Staff(); //2.創(chuàng)建數(shù)據(jù)源,供創(chuàng)建數(shù)據(jù)對象使用 $data = []; $data['id'] = 1001; $data['name'] = 'Peter'; $data['age'] = 26; //3.data()方法完成前面模型對象的$data屬性賦值 //使模型對象轉(zhuǎn)換成數(shù)據(jù)對象,現(xiàn)在$model 已經(jīng)是數(shù)據(jù)對象啦 $model ->?data($data); ????//4.getData()方法獲取數(shù)據(jù)對象原始數(shù)據(jù)$data ????$result?=?$model?->?getData();?? ????//5.查看數(shù)據(jù)對象原始數(shù)據(jù):$data屬性(數(shù)組類型) ????dump($result);?? ?? ??}}
現(xiàn)在打開瀏覽器運行Index控制器的index方法:
//以下就是數(shù)據(jù)對象的原始數(shù)據(jù)//其實就是將數(shù)據(jù)對象中$data屬性值輸出array(3)?{ ??["id"]?=>?int(1001) ??["name"]?=>?string(5)?"Peter" ??["age"]?=>?int(26)}
現(xiàn)在是輸出了全部的原始數(shù)據(jù),如果我們只需要其中一個元素,怎么做呢?
getData方法參數(shù)傳入鍵名字符串,可獲取指定的單個原始數(shù)據(jù)元素
我們僅修改上面控制器代碼第四步操作即可:
//4.getData()方法獲取數(shù)據(jù)對象原始數(shù)據(jù)$data['name']的值$result?=?$model?->?getData('name');
這樣即可獲取原始數(shù)據(jù)$data中的name鍵名對應的值:
string(5)?"Peter"
4. 總結(jié):
這個方法很靈活,即可獲取完整的原始數(shù)據(jù),也可以獲取其中的一個數(shù)據(jù)。在開發(fā)也是最常用的方法,特別是在模板制作中用得很多,一定要熟練掌握。
(推薦教程:thinkphp教程)