Thinkphp框架中D方法與M方法的區(qū)別
D()和M()方法的區(qū)別:
D和M的區(qū)別主要在于
M方法不需要創(chuàng)建模型類文件,M方法不會讀取模型類,所以默認情況下自動驗證是無效的,但是可以通過動態(tài)賦值的方式實現(xiàn)
而D方法必須有創(chuàng)建模型類。
我們可以用下面兩種方法去創(chuàng)建一個數(shù)據(jù)表的映射對象
第一種:$Test = D(‘Test')
第二種:$Test = new Model(‘Test')
雖然這兩種都可以對數(shù)據(jù)進行select,insert,delete,udpate操作,在
數(shù)據(jù)驗證上有很大的不同,
用第一種方式實例一個模型就會有數(shù)據(jù)檢查功能,如果 title 沒有填寫的話就會提示 “請輸入標題” (這個是tp提供的一個自動驗證功能,當然也需要在相應的model中定義好驗證條件);
如果用第二種就沒有了這個數(shù)據(jù)驗證功能,需要手動驗證。
總結(jié)如下:
D函數(shù)實例化的是你當前項目的Lib/Model下面的模塊。
如果該模塊不存在的話,直接返回實例化Model的對象(意義就與M()函數(shù)相同)。
而M只返回,實例化Model的對象。它的$name參數(shù)作為數(shù)據(jù)庫的表名來處理對數(shù)據(jù)庫的操作。
通俗點說:
D就是實例化一個基于Model文件的Model。
M則是通過直接實例化Model方法(ThinkPHP基類)來動態(tài)的實例化一個Model對象,即使這個對應的Model文件不存在。
再通俗一點說:
M實例化參數(shù)是數(shù)據(jù)庫的表名。
D實例化的是你自己在Model文件夾下面建立的模型文件。
D就是在你沒有定義模型的時候,系統(tǒng)自動幫你定義一個模型,這樣你才進行簡單的數(shù)據(jù)輸入或者輸出。
每一個Action文件都應該對應Model文件的,如果你定義了Model的話,
如:$Form = D(“User”)就可以改成$Form = new UserModel();(User是指你的模型文件名)。
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
- PHP中addslashes()和stripslashes()實現(xiàn)字符串轉(zhuǎn)義和還原用法實例
- PHP實現(xiàn)的文件操作類及文件下載功能示例
- PHP文件與目錄操作示例
- PHP數(shù)組操作實例分析【添加,刪除,計算,反轉(zhuǎn),排序,查找等】
- PHP常見字符串處理函數(shù)用法示例【轉(zhuǎn)換,轉(zhuǎn)義,截取,比較,查找,反轉(zhuǎn),切割】
- PHP會話控制實例分析
- PHP面向?qū)ο蟪绦蛟O計方法實例詳解
- PHP數(shù)據(jù)庫處理封裝類實例
- 如何判斷php mysqli擴展類是否開啟
- Bootstrap php制作動態(tài)分頁標簽
- php的4種常用運行方式詳解
- php 反斜杠處理函數(shù)addslashes()和stripslashes()實例詳解
相關(guān)文章
php判斷終端是手機還是電腦訪問網(wǎng)站的思路及代碼
解下來將寫個小程序使用php判斷終端是手機還是電腦訪問網(wǎng)站,感興趣的朋友可以參考下哈,希望對你學習php有所幫助2013-04-04