雖然都是例項化模型物件,兩者還是有區別的
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方法與M方法
d方法 d例項化model模型usermodel類 user d user 相當於 user new home model usermodel user select 呼叫模型下的函式 當 home model usermodel 類不存在的時候,d函式會嘗試例項化公共模組 d方法會先查詢model...
解析thinkphp中的M 與D 方法的區別
d 和m 方法的區別 d和m的區別主要在於 m方法不需要建立模型類檔案,m方法不程式設計客棧會讀取模型類,所以預設情況下自動驗證是無效的,但是可以通過動態賦值的方式實現 而d方法必須有建立模型類。我們可以用下面兩種方法去建立乙個資料表的對映物件 第一種 test d test 第二種 test ne...
thinkphp中的M方法和D方法
thinkphp 中m方法和d方法都用於例項化乙個模型類,m方法 用於高效例項化乙個基礎模型類,而 d方法 用於例項化乙個使用者定義模型類。使用m方法 如果是如下情況,請考慮使用 m方法 1.對資料表進行簡單的 curd 操作而無複雜的業務邏輯時 2.只有個別的表有較為複雜的業務邏輯時,將 m方法 ...