Thinkphp框架中D方法与M方法的区别


Posted in PHP onDecember 23, 2016

D()和M()方法的区别:

D和M的区别主要在于

M方法不需要创建模型类文件,M方法不会读取模型类,所以默认情况下自动验证是无效的,但是可以通过动态赋值的方式实现

而D方法必须有创建模型类。

我们可以用下面两种方法去创建一个数据表的映射对象

第一种:$Test = D(‘Test')

第二种:$Test = new Model(‘Test')

虽然这两种都可以对数据进行select,insert,delete,udpate操作,在

数据验证上有很大的不同,

用第一种方式实例一个模型就会有数据检查功能,如果 title 没有填写的话就会提示 “请输入标题” (这个是tp提供的一个自动验证功能,当然也需要在相应的model中定义好验证条件);

如果用第二种就没有了这个数据验证功能,需要手动验证。

总结如下:

D函数实例化的是你当前项目的Lib/Model下面的模块。

如果该模块不存在的话,直接返回实例化Model的对象(意义就与M()函数相同)。

而M只返回,实例化Model的对象。它的$name参数作为数据库的表名来处理对数据库的操作。

通俗点说:

D就是实例化一个基于Model文件的Model。

M则是通过直接实例化Model方法(ThinkPHP基类)来动态的实例化一个Model对象,即使这个对应的Model文件不存在。

再通俗一点说:

M实例化参数是数据库的表名。

D实例化的是你自己在Model文件夹下面建立的模型文件。

D就是在你没有定义模型的时候,系统自动帮你定义一个模型,这样你才进行简单的数据输入或者输出。

每一个Action文件都应该对应Model文件的,如果你定义了Model的话,

如:$Form = D(“User”)就可以改成$Form = new  UserModel();(User是指你的模型文件名)。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

PHP 相关文章推荐
用PHP产生动态的影像图
Oct 09 PHP
隐藏你的.php文件的实现方法
Mar 19 PHP
基于initPHP的框架介绍
Apr 18 PHP
利用谷歌 Translate API制作自己的翻译脚本
Jun 04 PHP
PHP根据两点间的经纬度计算距离
Oct 31 PHP
smarty模板引擎中内建函数if、elseif和else的使用方法
Jan 22 PHP
PHP保存session到memcache服务器的方法
Jan 19 PHP
php中引用&的用法分析【变量引用,函数引用,对象引用】
Dec 12 PHP
PHP crc32()函数讲解
Feb 14 PHP
laravel多条件查询方法(and,or嵌套查询)
Oct 09 PHP
TP5框架使用QueryList采集框架爬小说操作示例
Mar 26 PHP
PHP安全之register_globals的on和off的区别
Jul 23 PHP
ThinkPHP 整合Bootstrap Ajax分页样式
Dec 23 #PHP
php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
Dec 23 #PHP
php的4种常用运行方式详解
Dec 22 #PHP
php curl 模拟登录并获取数据实例详解
Dec 22 #PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
Dec 21 #PHP
Docker配置PHP开发环境教程
Dec 21 #PHP
PHP符合PSR编程规范的实例分享
Dec 21 #PHP
You might like
php全局变量和类配合使用深刻理解
2013/06/05 PHP
sae使用smarty模板的方法
2013/12/17 PHP
php验证身份证号码正确性的函数
2016/07/20 PHP
JavaScript实现禁止后退的方法
2006/12/27 Javascript
javascript中的prototype属性实例分析说明
2010/08/09 Javascript
16个最流行的JavaScript框架[推荐]
2011/05/29 Javascript
jQuery使用ajaxSubmit()提交表单示例
2014/04/04 Javascript
百度UEditor编辑器如何关闭抓取远程图片功能
2015/03/03 Javascript
input点击后placeholder中的提示消息消失
2016/01/15 Javascript
javascript的replace方法结合正则使用实例总结
2016/06/16 Javascript
jQuery绑定事件的四种方式介绍
2016/10/31 Javascript
canvas实现动态小球重叠效果
2017/02/06 Javascript
10 种最常见的 Javascript 错误(频率最高)
2018/02/08 Javascript
[03:18]DOTA2放量测试专访820:希望玩家加入国服大家庭
2013/08/25 DOTA
Python getopt模块处理命令行选项实例
2014/05/13 Python
在Django中输出matplotlib生成的图片方法
2018/05/24 Python
python递归函数绘制分形树的方法
2018/06/22 Python
对python同一个文件夹里面不同.py文件的交叉引用方法详解
2018/12/15 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
2019/03/11 Python
树莓派动作捕捉抓拍存储图像脚本
2019/06/22 Python
Python:type、object、class与内置类型实例
2019/12/25 Python
想学画画?python满足你!
2020/12/24 Python
丝芙兰墨西哥官网:Sephora墨西哥
2020/05/30 全球购物
大专学生推荐信范文
2013/11/19 职场文书
机械设计专业应届生求职信
2013/11/21 职场文书
四年的大学生生活自我评价
2013/12/09 职场文书
大学新学期计划书
2014/04/28 职场文书
社团活动总结怎么写
2014/06/30 职场文书
讲文明知礼仪演讲稿
2014/09/13 职场文书
网站出售协议书范文
2014/10/10 职场文书
六一晚会主持词开场白
2015/05/28 职场文书
安全生产会议制度
2015/08/06 职场文书
为什么阅读对所有年龄段的孩子都很重要?
2019/07/08 职场文书
导游词之南京栖霞山
2019/10/18 职场文书
Go语言切片前或中间插入项与内置copy()函数详解
2021/04/27 Golang
OpenCV-Python实现图像平滑处理操作
2021/06/08 Python