91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

thinkphp的D方法返回什么對象

發布時間:2022-03-16 09:02:06 來源:億速云 閱讀:196 作者:iii 欄目:編程語言

這篇文章主要介紹“thinkphp的D方法返回什么對象”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“thinkphp的D方法返回什么對象”文章能幫助大家解決問題。

在thinkphp中,D方法可以返回實例化的模型對象。D方法用于實例化自定義模型類,是ThinkPHP框架對Model類實例化的一種封裝,語法“D('[項目://][分組/]模型','模型層名稱')”,返回值為實例化的模型對象。

本教程操作環境:Windows7系統、thinkphp v5.1版、Dell G3電腦。

D方法應該是用的比較多的方法了,用于實例化自定義模型類,是ThinkPHP框架對Model類實例化的一種封裝,并實現了單例模式,支持跨項目和分組調用,調用格式如下:

D('[項目://][分組/]模型','模型層名稱')

D方法的返回值是實例化的模型對象。

D方法可以自動檢測模型類,如果存在自定義的模型類,則實例化自定義模型類,如果不存在,則會實例化Model基類,同時對于已實例化過的模型,不會重復去實例化。

D方法最常用的用法就是實例化當前項目的某個自定義模型,例如:

// 實例化User模型
$User = D('User');

會導入當前項目下面的Lib/Model/UserModel.class.php文件,然后實例化UserModel類,所以,實際上的代碼可能和下面的等效:

import('@.Model.UserModel');
$User = new UserModel();

D方法可以支持跨分組和項目實例化模型,例如:

//實例化Admin項目的User模型
D('Admin://User')
//實例化Admin分組的User模型
D('Admin/User')

3.1版本開始,由于增加了分層模型的支持,所以D方法也可以實例化其他的模型,例如:

// 實例化UserService類
$User = D('User','Service');
// 實例化UserLogic類
$User = D('User','Logic');
D('User','Service');

會導入Lib/Service/UserService.class.php,并實例化。

擴展知識:D和M的區別主要在于

M方法不需要創建模型類文件,M方法不會讀取模型類,所以默認情況下自動驗證是無效的,但是可以通過動態賦值的方式實現

而D方法必須有創建模型類。

我們可以用下面兩種方法去創建一個數據表的映射對象

第一種:$Test = D(‘Test')

第二種:$Test = new Model(‘Test')

雖然這兩種都可以對數據進行select,insert,delete,udpate操作,在

數據驗證上有很大的不同,

用第一種方式實例一個模型就會有數據檢查功能,如果 title 沒有填寫的話就會提示 “請輸入標題” (這個是tp提供的一個自動驗證功能,當然也需要在相應的model中定義好驗證條件);

如果用第二種就沒有了這個數據驗證功能,需要手動驗證。

總結如下:

  • D函數實例化的是你當前項目的Lib/Model下面的模塊。

  • 如果該模塊不存在的話,直接返回實例化Model的對象(意義就與M()函數相同)。

  • 而M只返回,實例化Model的對象。它的$name參數作為數據庫的表名來處理對數據庫的操作。

通俗點說:

  • D就是實例化一個基于Model文件的Model。

  • M則是通過直接實例化Model方法(ThinkPHP基類)來動態的實例化一個Model對象,即使這個對應的Model文件不存在。

再通俗一點說:

  • M實例化參數是數據庫的表名。

  • D實例化的是你自己在Model文件夾下面建立的模型文件。

  • D就是在你沒有定義模型的時候,系統自動幫你定義一個模型,這樣你才進行簡單的數據輸入或者輸出。

  • 每一個Action文件都應該對應Model文件的,如果你定義了Model的話,

如:$Form = D(“User”)就可以改成$Form = new  UserModel();(User是指你的模型文件名)。

關于“thinkphp的D方法返回什么對象”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

马关县| 安福县| 台江县| 伊宁市| 琼海市| 高州市| 达拉特旗| 贺兰县| 瑞金市| 综艺| 甘南县| 南部县| 泽州县| 舟山市| 上栗县| 永丰县| 沁阳市| 余干县| 谷城县| 佛冈县| 遵义市| 资溪县| 迁西县| 昌平区| 日喀则市| 桐梓县| 兴山县| 宝山区| 宾川县| 临泉县| 灯塔市| 贞丰县| 巍山| 丰顺县| 嘉峪关市| 平和县| 长寿区| 昌江| 崇义县| 陇川县| 错那县|