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 表单验证实现代码
Mar 10 PHP
网站用php实现paypal整合方法
Nov 28 PHP
drupal 代码实现URL重写
May 04 PHP
php 中的4种标记风格介绍
May 10 PHP
php连接函数implode与分割explode的深入解析
Jun 26 PHP
php防止SQL注入详解及防范
Nov 12 PHP
PHP实现显示照片exif信息的方法
Jul 11 PHP
smarty实现多级分类的方法
Dec 05 PHP
PHP中利用sleep函数实现定时执行功能实现代码
Aug 25 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
Jan 17 PHP
PHP里的$_GET数组介绍
Mar 22 PHP
laravel框架创建授权策略实例分析
Nov 22 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小程序自动提交到自助友情连接
2009/11/24 PHP
php strstr查找字符串中是否包含某些字符的查找函数
2010/06/03 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
2013/06/03 PHP
探讨捕获php错误信息方法的详解
2013/06/09 PHP
PHP身份证校验码计算方法
2016/08/10 PHP
js 获取服务器控件值的代码
2010/03/05 Javascript
轻轻松松学JS调试(不下载任何工具)
2010/04/14 Javascript
基于JQuery的一个简单的鼠标跟随提示效果
2010/09/23 Javascript
Thinkphp模板没有解析直接原样输出的解决方法
2014/10/31 Javascript
JavaScript实现select添加option
2015/07/03 Javascript
coffeescript使用的方式汇总
2015/08/05 Javascript
JavaScript实现点击按钮直接打印
2016/01/06 Javascript
基于HTML模板和JSON数据的JavaScript交互(移动端)
2016/04/06 Javascript
js与jquery正则验证电子邮箱、手机号、邮政编码的方法
2016/07/04 Javascript
利用Js+Css实现折纸动态导航效果实例源码
2017/01/25 Javascript
整理关于Bootstrap排版的慕课笔记
2017/03/29 Javascript
Vue0.1的过滤代码如何添加到Vue2.0直接使用
2017/08/23 Javascript
vue中获取滚动table的可视页面宽度调整表头与列对齐(每列宽度不都相同)
2019/08/17 Javascript
vue iview的菜单组件Mune 点击不高亮的解决方案
2019/11/01 Javascript
Python中支持向量机SVM的使用方法详解
2017/12/26 Python
Python+Django搭建自己的blog网站
2018/03/13 Python
python模拟表单提交登录图书馆
2018/04/27 Python
Python爬虫实现全国失信被执行人名单查询功能示例
2018/05/03 Python
使用Python实现微信提醒备忘录功能
2018/12/04 Python
python 发送邮件的四种方法汇总
2020/12/02 Python
Jupyter Notebook 远程访问配置详解
2021/01/11 Python
Groupon比利时官方网站:特卖和网上购物高达-70%
2019/08/09 全球购物
香港家用健身器材、运动器材及健康美容仪器专门店:FitBoxx
2019/12/05 全球购物
儿科主治医生个人求职信
2013/09/23 职场文书
《巨人的花园》教学反思
2014/02/12 职场文书
艺术学院毕业生自我评价
2014/03/02 职场文书
建筑专业毕业生自荐信
2014/05/25 职场文书
清洁工个人工作总结
2015/03/05 职场文书
四群教育工作总结
2015/08/10 职场文书
PyCharm 配置SSH和SFTP连接远程服务器
2022/05/11 Python
python 使用pandas读取csv文件的方法
2022/12/24 Python