韩震博客|关注于学习java&php与交流

ThinkPHP M()函数和D()函数的区别

admin 2018年07月30日 PHP知识 239 0

D方法实例化


上面实例化的时候我们需要传入完整的类名,系统提供了一个快捷方法D用于数据模型的实例化操作。 

要实例化自定义模型类,可以使用下面的方式:


<?php
//实例化模型
$User = D('User');
// 相当于 $User = new \Home\Model\UserModel();
// 执行具体的数据操作
$User->select();

当 \Home\Model\UserModel 类不存在的时候,D函数会尝试实例化公共模块下面的 \Common\Model\UserModel 类。 

D方法还可以支持跨模块调用,需要使用:


//实例化Admin模块的User模型
D('Admin/User');

M方法实例化模型


D方法实例化模型类的时候通常是实例化某个具体的模型类,如果你仅仅是对数据表进行基本的CURD操作的话,使用M方法实例化的话,由于不需要加载具体的模型类,所以性能会更高。 

例如:


// 使用M方法实例化
$User = M('User');
// 和用法$User = new \Think\Model('User'); 等效
// 执行其他的数据操作$User->select();

M方法也可以支持跨库操作,例如:

// 使用M方法实例化 操作db_name数据库的ot_user表
$User = M('db_name.User','ot_');
// 执行其他的数据操作$User->select();

M方法的参数和\Think\Model类的参数是一样的,也就是说,我们也可以这样实例化:

$New  = M('new','think_',$connection);
// 等效于 $New = new \Think\Model('new','think_',$connection);

具体的参数含义可以参考前面的介绍。 

M方法实例化的时候,默认情况下是直接实例化系统的\Think\Model类,如果我们希望实例化其他的公共模型类的话,可以使用如下方法:

$User = M('\Home\Model\CommonModel:User','think_','db_config');
// 相当于 $User = new \Home\Model\CommonModel('User','think_','db_config')

如果你的模型类有自己的业务逻辑,M方法是无法支持的,就算是你已经定义了具体的模型类,M方法实例化的时候是会直接忽略。



红色火线加油站你值得一看!http://hongsehuoxian.com
看到这里如果这篇文章真的帮到你了,不妨打赏一下哦!

以上就是红色火线JAVA加油站整理的关于ThinkPHP M()函数和D()函数的区别的文章,
希望可以帮到你,如果你有不同的见解可以留言指正哦,避免让别的java小伙伴在走挫折路。
vue 报错 Cannot read property '__ob__' of undefined的解决方法
你是第一个吃螃蟹的人
发表评论

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

分享:

支付宝

微信