
两者共同点都是实例化模型的,而两者不同点呢?一起来看一下:
$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使用教程栏目进行学习!
Atas ialah kandungan terperinci Thinkphp中D方法和M方法的区别. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Mana satu lebih mudah, thinkphp atau laravel?
Bagaimanakah prestasi thinkphp?
Maksud tajuk dalam HTML
Apakah jenis fail yang boleh dikenal pasti berdasarkan
Adakah Bitcoin sah di China?
Bagaimana untuk mengubah suai koordinat dalam matlab
Pengenalan kepada penggunaan fungsi MySQL ELT
Bagaimana untuk menetapkan vlanid