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