兩者共同點都是實例化模型的,而兩者不同點呢?一起來看一下:
$User = D(‘User’);括號中的參數(shù)User,對應(yīng)的模型類文件的 HomeModelUserModel.class.php(我們假設(shè)當前模塊為Home),如果參數(shù)是‘UserType’,那么對應(yīng)的模型類文件的 HomeModelUserTypeModel.class.php,也就是說D方法的參數(shù)就是模型的名稱,并且和模型類的大小寫定義是一致的。
$User = M(‘User’); 是和 $User = new ThinkModel(‘User’); 等效的;也就是說,M方法實例化的時候,默認情況下是直接實例化系統(tǒng)的ThinkModel類,如果我們希望實例化其他的公共模型類的話,可以使用如下方法:$User = M(‘HomeCommenModel:User’,’think_’,’db_config’);(我們假設(shè)表前綴為think_)。
我們在實例化的過程中,經(jīng)常使用D方法和M方法,這兩個方法的區(qū)別在于M方法實例化模型無需用戶為每個數(shù)據(jù)表定義模型類,如果D方法沒有找到定義的模型類,則會自動調(diào)用M方法。
立即學習“PHP免費學習筆記(深入)”;
另外,想要使用thinkphp中的自動驗證,自動完成功能,就需要使用D方法。
其實說白了,M方法實例化時候的參數(shù)就是你數(shù)據(jù)庫的表名,而D方法實例化的是你在Model文件夾下寫的Model類,當然想要自動驗證,自動完成,使用D方法。
更多ThinkPHP相關(guān)技術(shù)文章,請訪問ThinkPHP使用教程欄目進行學習!