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 相关文章推荐
数据库的日期格式转换
Oct 09 PHP
php下一个阿拉伯数字转中文数字的函数
Jul 16 PHP
深入php函数file_get_contents超时处理的方法详解
Jun 03 PHP
解决phpcms更换javascript的幻灯片代码调用图片问题
Dec 26 PHP
php字符串函数学习之substr()
Mar 27 PHP
PHP微信支付开发实例
Jun 22 PHP
php语言注释,单行注释和多行注释
Jan 21 PHP
php格式文件打开的四种方法
Feb 24 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
Aug 10 PHP
php多进程模拟并发事务产生的问题小结
Dec 07 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
Dec 31 PHP
PHP ElasticSearch做搜索实例讲解
Feb 05 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
文件系统基本操作类
2006/11/23 PHP
php 删除记录实现代码
2009/03/12 PHP
在IIS7.0下面配置PHP 5.3.2运行环境的方法
2010/04/13 PHP
PHP简单实现“相关文章推荐”功能的方法
2014/07/19 PHP
PHP 返回13位时间戳的实现代码
2016/05/13 PHP
JavaScript CSS修改学习第六章 拖拽
2010/02/19 Javascript
总结JavaScript设计模式编程中的享元模式使用
2016/05/21 Javascript
ES6新数据结构Set与WeakSet用法分析
2017/03/31 Javascript
关于Node.js的events.EventEmitter用法介绍
2017/04/01 Javascript
基于JavaScript实现多级菜单效果
2017/07/25 Javascript
浅谈pc端rem字体设置的问题
2017/08/03 Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
2017/10/01 Javascript
ant design vue datepicker日期选择器中文化操作
2020/10/28 Javascript
在ironpython中利用装饰器执行SQL操作的例子
2015/05/02 Python
初步剖析C语言编程中的结构体
2016/01/16 Python
Python简单删除列表中相同元素的方法示例
2017/06/12 Python
Python给你的头像加上圣诞帽
2018/01/04 Python
python实现机器人行走效果
2018/01/29 Python
matplotlib 输出保存指定尺寸的图片方法
2018/05/24 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
2021/02/18 Python
巴西最大的家具及装饰用品店:Mobly
2017/10/11 全球购物
手工制作的意大利皮革运动鞋:KOIO
2020/01/05 全球购物
乐高瑞士官方商店:LEGO CH
2020/08/16 全球购物
高中生学习生活的自我评价
2013/10/09 职场文书
党课学习思想汇报
2014/01/02 职场文书
个人实习生的自我评价
2014/02/16 职场文书
校园文明倡议书
2014/05/16 职场文书
机械专业求职信范文
2014/07/15 职场文书
教师竞聘上岗演讲稿
2014/09/03 职场文书
公民授权委托书范本
2014/09/17 职场文书
安全月宣传标语
2014/10/07 职场文书
学校艾滋病宣传活动总结
2015/05/09 职场文书
同学聚会祝酒词
2015/08/10 职场文书
SpringBoot工程下使用OpenFeign的坑及解决
2021/07/02 Java/Android
Python通用验证码识别OCR库ddddocr的安装使用教程
2022/07/07 Python
win11电脑关机鼠标灯还亮怎么解决? win11关机后鼠标灯还亮解决方法
2023/01/09 数码科技