D和M的區(qū)別主要在于
M方法不需要?jiǎng)?chuàng)建模型類文件,M方法不會(huì)讀取模型類,所以默認(rèn)情況下自動(dòng)驗(yàn)證是無效的,但是可以通過動(dòng)態(tài)賦值的方式實(shí)現(xiàn)
而D方法必須有創(chuàng)建模型類。
我們可以用下面兩種方法去創(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 沒有填寫的話就會(huì)提示 “請(qǐng)輸入標(biāo)題” (這個(gè)是tp提供的一個(gè)自動(dòng)驗(yàn)證功能,當(dāng)然也需要在相應(yīng)的model中定義好驗(yàn)證條件);
如果用第二種就沒有了?????
還有1個(gè)區(qū)別就是當(dāng)用了$trueTableName后,必須用$test=d('test'),表示查詢的是test表,
如果用的是$test=m('test'),那么都表示查詢的數(shù)據(jù)邊是think_test。
thinkphp2.0版本測(cè)試有如此上面的問題
php技術(shù):解析thinkphp中的M()與D()方法的區(qū)別,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。