ThinkPHP5數(shù)據(jù)對象之查詢數(shù)據(jù)Getdata方法的使用

本篇文章介紹了thinkphp5數(shù)據(jù)對象之查詢數(shù)據(jù)getdata方法的使用方法,希望對學習thinkphp的朋友有幫助!

ThinkPHP5數(shù)據(jù)對象之查詢數(shù)據(jù)Getdata方法的使用

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[&#39;id&#39;] = 1001;     $data[&#39;name&#39;] = &#39;Peter&#39;;     $data[&#39;age&#39;] = 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?-&gt;?getData();?? ????//5.查看數(shù)據(jù)對象原始數(shù)據(jù):$data屬性(數(shù)組類型) ????dump($result);?? ?? ??}}

現(xiàn)在打開瀏覽器運行Index控制器的index方法:

//以下就是數(shù)據(jù)對象的原始數(shù)據(jù)//其實就是將數(shù)據(jù)對象中$data屬性值輸出array(3)?{ ??["id"]?=&gt;?int(1001) ??["name"]?=&gt;?string(5)?"Peter" ??["age"]?=&gt;?int(26)}

現(xiàn)在是輸出了全部的原始數(shù)據(jù),如果我們只需要其中一個元素,怎么做呢?

getData方法參數(shù)傳入鍵名字符串,可獲取指定的單個原始數(shù)據(jù)元素

我們僅修改上面控制器代碼第四步操作即可:

//4.getData()方法獲取數(shù)據(jù)對象原始數(shù)據(jù)$data['name']的值$result?=?$model?-&gt;?getData('name');

這樣即可獲取原始數(shù)據(jù)$data中的name鍵名對應的值:

string(5)?"Peter"

4. 總結(jié):

這個方法很靈活,即可獲取完整的原始數(shù)據(jù),也可以獲取其中的一個數(shù)據(jù)。在開發(fā)也是最常用的方法,特別是在模板制作中用得很多,一定要熟練掌握。

(推薦教程:thinkphp教程

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊7 分享