兩者共同點都是實例化模型的,而兩者不同點呢?一起來看看:
$User = D('User');括號中的參數User,對應的模型類別檔案的\Home\Model\UserModel.class.php(我們假設目前模組為Home ),如果參數是'UserType',那麼對應的模型類別檔案的\Home\Model\UserTypeModel.class.php,也就是說D方法的參數就是模型的名稱,並且和模型類別的大小寫定義是一致的。
$User = M('User'); 是和$User = new \Think\Model('User'); 等效的;也就是說,M方法實例化的時候,預設情況下是直接實例化系統的\Think\Model類,如果我們希望實例化其他的公共模型類的話,可以使用以下方法:$User = M('\Home\CommenModel:User','think_','db_config' );(我們假設表前綴為think_)。
我們在實例化的過程中,經常使用D方法和M方法,這兩個方法的區別在於M方法實例化模型無需用戶為每個資料表定義模型類,如果D方法沒有找到定義的模型類,則會自動呼叫M方法。
另外,想要使用ThinkPHP中的自動驗證,自動完成功能,就需要使用D方法。
其實說穿了,M方法實例化時候的參數就是你資料庫的表名,而D方法實例化的是你在Model資料夾下寫的Model類,當然想要自動驗證,自動完成,使用D方法。
更多ThinkPHP相關技術文章,請造訪ThinkPHP使用教學欄位進行學習!
以上是Thinkphp中D方法與M方法的差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!