您好,欢迎访问一九零五行业门户网

thinkphp m和d的区别

在实例化的过程中,经常使用d方法和m方法,这两个方法的区别在于m方法实例化模型无需用户为每个数据表定义模型类,如果d方法没有找到定义的模型类,则会自动调用m方法。通俗一点说:m实例化参数是数据库的表名。d实例化的是你自己在model文件夹下面建立的模型文件
例如:$user = new usermodel();等价于$user = d('user');如果实例化的是一个空模型例如 $demo = new model();那么它等价于 $demo = m();
d和m的区别主要在于:m方法不需要创建模型类文件,m方法不会读取模型类,所以默认情况下自动验证是无效的,但是可以通过动态赋值的方式实现而d方法必须有创建模型类。我们可以用下面两种方法去创建一个数据表的映射对象第一种:$test = d('test')第二种:$test = new model('test')虽然这两种都可以对数据进行select,insert,delete,udpate操作,在数据验证上有很大的不同,用第一种方式实例一个模型就会有数据检查功能,如果 title 没有填写的话就会提示 “请输入标题” (这个是tp提供的一个自动验证功能,当然也需要在相应的model中定义好验证条件);如果用第二种就没有了·····还有1个区别就是当用了$truetablename后,必须用$test=d('test'),表示查询的是test表,如果用的是$test=m('test'),那么都表示查询的数据边是think_test。thinkphp2.0版本测试有如此上面的问题
通俗点说:d就是实例化一个基于model文件的model。m则是通过直接实例化model方法(thinkphp基类)来动态的实例化一个model对象,即使这个对应的model文件不存在
a快速实例化action类库b执行行为类c配置参数存取方法d快速实例化model类库f快速简单文本数据存取方法l 语言参数存取方法m快速高性能实例化模型r快速远程调用action类方法s快速缓存存取方法u url动态生成和重定向方法w 快速widget输出方法 d函数实例化的是你当前项目的lib/model下面的模块。如果该模块不存在的话,直接返回实例化model的对象(意义就与m()函数相同)。而m只返回,实例化model的对象。它的$name参数作为数据库的表名来处理对数据库的操作。
更多thinkphp相关技术文章,请访问thinkphp使用教程栏目进行学习!
以上就是thinkphp m和d的区别的详细内容。
其它类似信息

推荐信息