解析thinkphp中的M()與D()方法的區(qū)別
更新時間:2013年06月22日 15:07:35 作者:
本篇文章是對thinkphp中的M()與D()方法的區(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中定義好驗證條件);
如果用第二種就沒有了·····
還有1個區(qū)別就是當用了$trueTableName后,必須用$test=d('test'),表示查詢的是test表,
如果用的是$test=m('test'),那么都表示查詢的數(shù)據(jù)邊是think_test。
thinkphp2.0版本測試有如此上面的問題
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中定義好驗證條件);
如果用第二種就沒有了·····
還有1個區(qū)別就是當用了$trueTableName后,必須用$test=d('test'),表示查詢的是test表,
如果用的是$test=m('test'),那么都表示查詢的數(shù)據(jù)邊是think_test。
thinkphp2.0版本測試有如此上面的問題
相關文章
PHP中使用json數(shù)據(jù)格式定義字面量對象的方法
這篇文章主要介紹了PHP中使用json數(shù)據(jù)格式定義字面量對象的方法,這是一種變通方法,使用json還可以在類中生成數(shù)組哦,需要的朋友可以參考下2014-08-08使用ThinkPHP自帶的Http類下載遠程圖片到本地的實現(xiàn)代碼
Thinkphp是國人開發(fā)一個PHP框架,該框架相比國外的一些框架也毫不遜色。強大的ORM,插件,分組等功能讓人愛不釋手。2011-08-08調(diào)整優(yōu)化您的LAMP應用程序的5種簡單方法
Wikipedia、Facebook 和 Yahoo! 等主要 web 屬性使用 LAMP 架構來為每天數(shù)百萬的請求提供服務,而 Wordpress、Joomla、Drupal 和 SugarCRM 等 web 應用程序軟件使用其架構來讓組織輕松部署基于 web 的應用程序。2011-06-06