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