搜尋
首頁php框架ThinkPHPthinkphp D方法回傳什麼

thinkphp D方法回傳什麼

Mar 15, 2022 pm 06:51 PM
d方法thinkphp

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

thinkphp 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框架

以上是thinkphp D方法回傳什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器