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环境――Appserv
Dec 13 PHP
php 备份数据库代码(生成word,excel,json,xml,sql)
Jun 23 PHP
curl不使用文件存取cookie php使用curl获取cookie示例
Jan 26 PHP
PHP中调用SVN命令更新网站方法
Jan 07 PHP
php字符串过滤与替换小结
Jan 26 PHP
php编写批量生成不重复的卡号密码代码
May 14 PHP
四个常见html网页乱码问题及解决办法
Sep 08 PHP
深入理解PHP 数组之count 函数
Jun 13 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
Aug 31 PHP
PHP使用CURL实现下载文件功能示例
Jun 03 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
Jul 08 PHP
php TP5框架生成二维码链接
Apr 01 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 array_filter除去数组中的空字符元素
2020/06/21 PHP
php给每个段落添加空格的方法
2015/03/20 PHP
简单谈谈PHP中strlen 函数
2016/02/27 PHP
php多进程应用场景实例详解
2019/07/22 PHP
HTML IMG标签 onload 内存溢出导致浏览器CPU占用过高
2021/03/09 Javascript
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
动感效果的TAB选项卡jquery 插件
2011/07/09 Javascript
JS中判断JSON数据是否存在某字段的方法
2014/03/07 Javascript
jQuery前端分页示例分享
2015/02/10 Javascript
javascript+canvas实现刮刮卡抽奖效果
2015/07/29 Javascript
JS实现鼠标滑过链接改变网页背景颜色的方法
2015/10/20 Javascript
Ionic默认的Tabs模板使用实例
2016/08/29 Javascript
微信开发 微信授权详解
2016/10/21 Javascript
bootstrap IE8 兼容性处理
2017/03/22 Javascript
layui表格实现代码
2017/05/20 Javascript
浅谈原型对象的常用开发模式
2017/07/22 Javascript
JavaScript实现简单的双色球(实例讲解)
2017/07/31 Javascript
[01:04:06]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第一局
2016/02/26 DOTA
Django中几种重定向方法
2015/04/28 Python
Python SqlAlchemy动态添加数据表字段实例解析
2018/02/07 Python
Anaconda入门使用总结
2018/04/05 Python
windows下搭建python scrapy爬虫框架步骤
2018/12/23 Python
python实现AES加密与解密
2019/03/28 Python
Django2 连接MySQL及model测试实例分析
2019/12/10 Python
Django+RestFramework API接口及接口文档并返回json数据操作
2020/07/12 Python
法国奢华女性时尚配饰网上商店:Monnier Frères
2016/08/27 全球购物
英国女士和男士时尚服装网上购物:Top Labels Online
2018/03/25 全球购物
大专会计自我鉴定
2014/02/06 职场文书
毕业生简历自我评价范文
2014/04/09 职场文书
文明礼貌演讲稿
2014/05/12 职场文书
优秀实习生主要事迹
2014/05/29 职场文书
入党现实表现材料
2014/12/23 职场文书
自主招生英文自荐信
2015/03/25 职场文书
2016年小学教师政治学习心得体会
2016/01/23 职场文书
zabbix agent2 监控oracle数据库的方法
2021/05/13 Oracle
电脑开机弹出documents文件夹怎么回事?弹出documents文件夹解决方法
2022/04/08 数码科技