Code前端首页关于Code前端联系我们

Thinkphp中D方法和M方法的区别

terry 2年前 (2023-09-25) 阅读数 48 #后端开发

两者有相同的共同点:都是实例化模型,但是两者有什么区别呢?我们看一下:

$User = D('User');括号中的参数 User 对应的是模型类文件的 \Home\Model\ (我们假设当前模块是 Home),如果参数是 'UserType' ,那么 \Home\Model\ 就是对应的模型类文件,这意味着D 方法的参数是模型的名称,并且与模型类的案例定义相匹配。

$User = M('用户');等于 $User = new \Think\Model('User');即M方法实例化时,默认是直接实例,如果我们想实例化其他公共模型类,可以使用如下方法: $User = M('\Home\CommenModel:User','think_ ' ,'db_config');(我们假设表前缀是think_)。

在实例化过程中,我们经常使用D方法和M方法。两种方法的区别在于,M方法实例化模型,而无需用户为每个数据表定义模型类。如果D方法没有找到定义的模型类,则自动调用M方法。

另外,如果要使用ThinkPHP的自动验证和自动完成功能,必须使用D方法。

其实说白了,M方法实例化时的参数就是你数据库的表名,D方法实例化的是你在Model文件夹下写的Model类。当然,如果你想自动确认并完成,就用D方法。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门