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获取当前网址url并替换参数或网址的方法
Jun 06 PHP
php利用iframe实现无刷新文件上传功能的代码
Sep 29 PHP
PHP提示Notice: Undefined variable的解决办法
Nov 24 PHP
PHP中CURL方法curl_setopt()函数的参数分享
Jan 19 PHP
解析PHP计算页面执行时间的实现代码
Jun 18 PHP
浅析PHP绘图技术
Jul 03 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
Jun 23 PHP
php正则匹配html中带class的div并选取其中内容的方法
Jan 13 PHP
Laravel 5框架学习之Eloquent 关系
Apr 09 PHP
PHP访问数据库集群的方法小结
Mar 14 PHP
Linux平台php命令行程序处理管道数据的方法
Nov 10 PHP
php中如何执行linux命令详解
Nov 06 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不使用copy()函数复制文件的方法
2015/03/13 PHP
PHPExcel笔记, mpdf导出
2016/05/03 PHP
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
2010/06/18 Javascript
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
一个可拖拽列宽表格实例演示
2012/11/26 Javascript
jquery定时滑出可最小化的底部提示层特效代码
2013/10/02 Javascript
Jquery实现图片放大镜效果的思路及代码(自写)
2013/10/18 Javascript
javascript实现获取字符串hash值
2015/05/10 Javascript
将json转换成struts参数的方法
2016/11/08 Javascript
jQuery实现立体式数字动态增加(animate方法)
2016/12/21 Javascript
js模糊查询实例分享
2016/12/26 Javascript
jquery 正整数数字校验正则表达式
2017/01/10 Javascript
jQuery基于ajax实现页面加载后检查用户登录状态的方法
2017/02/10 Javascript
nodejs模块学习之connect解析
2017/07/05 NodeJs
XMLHttpRequest对象_Ajax异步请求重点(推荐)
2017/09/28 Javascript
Nodejs实现的操作MongoDB数据库功能完整示例
2019/02/02 NodeJs
vue-router 起步步骤详解
2019/03/26 Javascript
Python实现快速多线程ping的方法
2015/07/15 Python
python实现对指定输入的字符串逆序输出的6种方法
2018/04/26 Python
用python简单实现mysql数据同步到ElasticSearch的教程
2018/05/30 Python
Python设计模式之抽象工厂模式原理与用法详解
2019/01/15 Python
python笔记_将循环内容在一行输出的方法
2019/08/08 Python
让你的Python代码实现类型提示功能
2019/11/19 Python
Django models文件模型变更错误解决
2020/05/11 Python
Html5上传图片 移动端、PC端通用代码
2016/06/08 HTML / CSS
波兰电子产品购物网站:Vobis
2019/05/26 全球购物
Watch Station官方网站:世界一流的手表和智能手表
2020/01/05 全球购物
幼师专业求职推荐信
2013/11/08 职场文书
人事行政主管岗位职责
2013/12/22 职场文书
医学求职信
2014/05/28 职场文书
优秀教师先进个人事迹材料
2014/08/31 职场文书
开展批评与自我批评发言稿
2014/10/16 职场文书
音乐之声观后感
2015/06/04 职场文书
2016应届毕业生就业指导课心得体会
2016/01/15 职场文书
2016党员学习作风建设心得体会
2016/01/21 职场文书
在SQL Server中使用 Try Catch 处理异常的示例详解
2022/07/15 SQL Server