解析thinkphp中的M()與D()方法的區(qū)別
更新時(shí)間:2013年06月22日 15:07:35 作者:
本篇文章是對thinkphp中的M()與D()方法的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
D()和M()方法的區(qū)別:
D和M的區(qū)別主要在于
M方法不需要?jiǎng)?chuàng)建模型類文件,M方法不會讀取模型類,所以默認(rèn)情況下自動驗(yàn)證是無效的,但是可以通過動態(tài)賦值的方式實(shí)現(xiàn)
而D方法必須有創(chuàng)建模型類。
我們可以用下面兩種方法去創(chuàng)建一個(gè)數(shù)據(jù)表的映射對象
第一種:$Test = D('Test')
第二種:$Test = new Model('Test')
雖然這兩種都可以對數(shù)據(jù)進(jìn)行select,insert,delete,udpate操作,在
數(shù)據(jù)驗(yàn)證上有很大的不同,
用第一種方式實(shí)例一個(gè)模型就會有數(shù)據(jù)檢查功能,如果 title 沒有填寫的話就會提示 “請輸入標(biāo)題” (這個(gè)是tp提供的一個(gè)自動驗(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版本測試有如此上面的問題
D和M的區(qū)別主要在于
M方法不需要?jiǎng)?chuàng)建模型類文件,M方法不會讀取模型類,所以默認(rèn)情況下自動驗(yàn)證是無效的,但是可以通過動態(tài)賦值的方式實(shí)現(xiàn)
而D方法必須有創(chuàng)建模型類。
我們可以用下面兩種方法去創(chuàng)建一個(gè)數(shù)據(jù)表的映射對象
第一種:$Test = D('Test')
第二種:$Test = new Model('Test')
雖然這兩種都可以對數(shù)據(jù)進(jìn)行select,insert,delete,udpate操作,在
數(shù)據(jù)驗(yàn)證上有很大的不同,
用第一種方式實(shí)例一個(gè)模型就會有數(shù)據(jù)檢查功能,如果 title 沒有填寫的話就會提示 “請輸入標(biāo)題” (這個(gè)是tp提供的一個(gè)自動驗(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版本測試有如此上面的問題
相關(guān)文章
PHP中使用json數(shù)據(jù)格式定義字面量對象的方法
這篇文章主要介紹了PHP中使用json數(shù)據(jù)格式定義字面量對象的方法,這是一種變通方法,使用json還可以在類中生成數(shù)組哦,需要的朋友可以參考下2014-08-08php實(shí)現(xiàn)的雙向隊(duì)列類實(shí)例
這篇文章主要介紹了php實(shí)現(xiàn)的雙向隊(duì)列類,是數(shù)據(jù)結(jié)構(gòu)中非常重要的一個(gè)數(shù)據(jù)結(jié)構(gòu)類型,需要的朋友可以參考下2014-09-09使用ThinkPHP自帶的Http類下載遠(yuǎn)程圖片到本地的實(shí)現(xiàn)代碼
Thinkphp是國人開發(fā)一個(gè)PHP框架,該框架相比國外的一些框架也毫不遜色。強(qiáng)大的ORM,插件,分組等功能讓人愛不釋手。2011-08-08調(diào)整優(yōu)化您的LAMP應(yīng)用程序的5種簡單方法
Wikipedia、Facebook 和 Yahoo! 等主要 web 屬性使用 LAMP 架構(gòu)來為每天數(shù)百萬的請求提供服務(wù),而 Wordpress、Joomla、Drupal 和 SugarCRM 等 web 應(yīng)用程序軟件使用其架構(gòu)來讓組織輕松部署基于 web 的應(yīng)用程序。2011-06-06php使用socket簡單實(shí)現(xiàn)通信功能
socket只不過是一個(gè)數(shù)據(jù)結(jié)構(gòu)。使用這個(gè)socket數(shù)據(jù)結(jié)構(gòu)去開始一個(gè)客戶端和服務(wù)器之間的會話。服務(wù)器是一直在監(jiān)聽準(zhǔn)備產(chǎn)生一個(gè)新的會話。當(dāng)一個(gè)客戶端連接服務(wù)器,它就打開服務(wù)器正在進(jìn)行監(jiān)聽的一個(gè)端口進(jìn)行會話2023-03-03