thinkPHP中M()和D()的區別

來源:互聯網
上載者:User

標籤:意義   提示   mod   表名   自動   insert   url   需要   情況   

在執行個體化的過程中,經常使用D方法和M方法,這兩個方法的區別在於M方法執行個體化模型無需使用者為每個資料表定義模型類,如果D方法沒有找到定義的模型類,則會自動調用M方法。通俗一點說:M執行個體化參數是資料庫的表名。D執行個體化的是你自己在Model檔案夾下面建立的模型檔案
例如:$user = new UserModel();
等價於$user = D(‘user‘);
如果執行個體化的是一個空模型
例如 $Demo = new Model();
那麼它等價於 $Demo = M();
------------------------------------------------------------------------

D和M的區別主要在於:M方法不需要建立模型類檔案,M方法不會讀模數型類,所以預設情況下自動驗證是無效的,但是可以通過動態賦值的方式實現而D方法必須有建立模型類。我們可以用下面兩種方法去建立一個資料表的映射對象第一種:$Test = D(‘Test‘)第二種:$Test = new Model(‘Test‘)雖然這兩種都可以對資料進行select,insert,delete,udpate操作,在資料驗證上有很大的不同,用第一種方式執行個體一個模型就會有資料檢查功能,如果 title 沒有填寫的話就會提示 “請輸入標題” (這個是tp提供的一個自動驗證功能,當然也需要在相應的model中定義好驗證條件);如果用第二種就沒有了·····還有1個區別就是當用了$trueTableName後,必須用$test=d(‘test‘),表示查詢的是test表,如果用的是$test=m(‘test‘),那麼都表示查詢的資料邊是think_test。thinkphp2.0版本測試有如此上面的問題

-----------------------------------------------------------------------------------------------

通俗點說:D就是執行個體化一個基於Model檔案的Model。M則是通過直接執行個體化Model方法(ThinkPHP基類)來動態執行個體化一個Model對象,即使這個對應的Model檔案不存在

============================================================================

A快速執行個體化Action類庫

B執行行為類

C配置參數存取方法

D快速執行個體化Model類庫

F快速簡單文本資料存取方法

L 語言參數存取方法

M快速高效能執行個體化模型

R快速遠程調用Action類方法

S快速緩衝存取方法

U URL動態產生和重新導向方法

W 快速Widget輸出方法

D函數執行個體化的是你當前項目的Lib/Model下面的模組。如果該模組不存在的話,直接返回執行個體化Model的對象(意義就與M()函數相同)。而M只返回,執行個體化Model的對象。它的$name參數作為資料庫的表名來處理對資料庫的操作。

thinkPHP中M()和D()的區別

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.