thinkphp M和D方法的区别

本文详细介绍了ThinkPHP框架中M方法与D方法的区别。M方法用于高效实例化基础模型类,适用于简单的CURD操作;D方法则用于实例化用户定义的模型类,支持自动验证等功能,并能实现更复杂的业务逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                                         thinkphp  M和D方法的区别

每次写程序的时候都是用D方法,从来没有想过D方法和M方法的区别,今天就来总结一下:

 

ThinkPHP 中M方法和D方法都用于实例化一个模型类,M方法 用于高效实例化一个基础模型类,而 D方法 用于实例化一个用户定义模型类。

 

使用M方法

如果是如下情况,请考虑使用 M方法:

  1. 对数据表进行简单的 CURD 操作而无复杂的业务逻辑时
  2. 只有个别的表有较为复杂的业务逻辑时,将 M方法 与实例化 CommonModel 类进行结合使用

M方法则实例化一个基础模型类,默认是实例化Model类,甚至可以简单看着就是对参数表名对应的数据表的操作:

$User = M("User");

使用D方法

如果是如下情况,请考虑使用 D方法:

  1. 需要使用 ThinkPHP 模型中一些高级功能如自动验证功能(create()方法中实现)、关联模型等
  2. 业务逻辑比较复杂,且涉及的表众多
  3. 将业务逻辑定义在了自定义的模型类里面(Lib/Model目录下),而想在操作中实现这些业务逻辑

D方法可以自动检测模型类,如果存在自定义的模型类,则实例化自定义模型类,如果不存在,则会实例化Model基类,同时对于已实例化过的模型,不会重复去实例化。
D方法还可以支持跨项目和分组调用,需要使用:

          //实例化Admin项目的User模型

         D('Admin://User')

        //实例化Admin分组的User模型

         D('Admin/User')

 

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值