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 相关文章推荐
使用JSON实现数据的跨域传输的php代码
Dec 20 PHP
细谈php中SQL注入攻击与XSS攻击
Jun 10 PHP
自己在做项目过程中学到的PHP知识收集
Aug 20 PHP
解析php取整的几种方式
Jun 25 PHP
php中动态修改ini配置
Oct 14 PHP
PHP读取汉字的点阵数据
Jun 22 PHP
PHP实现的进度条效果详解
May 03 PHP
详解PHP中foreach的用法和实例
Oct 25 PHP
PHP简单实现欧拉函数Euler功能示例
Nov 06 PHP
PHP实现一个轻量级容器的方法
Jan 28 PHP
PHP基于ip2long实现IP转换整形
Dec 11 PHP
windows系统php环境安装swoole具体步骤
Mar 04 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
使用数据库保存session的方法
2006/10/09 PHP
php set_time_limit(0) 设置程序执行时间的函数
2010/05/26 PHP
php 启动时报错的简单解决方法
2014/01/27 PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
2014/06/23 PHP
培养自己的php编码规范
2015/09/28 PHP
WordPress中注册菜单与调用菜单的方法详解
2015/12/18 PHP
PHP记录页面停留时间的方法
2016/03/30 PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
2016/10/17 PHP
List the Stored Procedures in a SQL Server database
2007/06/20 Javascript
JavaScript中的console.trace()函数介绍
2014/12/29 Javascript
jQuery模拟物体自由落体运动(附演示与demo源码下载)
2016/01/21 Javascript
JavaScript添加随滚动条滚动窗体的方法
2016/02/23 Javascript
浅谈TypeScript的类型保护机制
2020/02/23 Javascript
vue路由权限校验功能的实现代码
2020/06/07 Javascript
Python使用函数默认值实现函数静态变量的方法
2014/08/18 Python
Python中模块pymysql查询结果后如何获取字段列表
2017/06/05 Python
Python request设置HTTPS代理代码解析
2018/02/12 Python
python实现下载pop3邮件保存到本地
2018/06/19 Python
Python计算开方、立方、圆周率,精确到小数点后任意位的方法
2018/07/17 Python
详解pandas安装若干异常及解决方案总结
2019/01/10 Python
django框架模板中定义变量(set variable in django template)的方法分析
2019/06/24 Python
PyQt5的QWebEngineView使用示例
2020/10/20 Python
Python爬虫之Selenium库的使用方法
2021/01/03 Python
详解pandas apply 并行处理的几种方法
2021/02/24 Python
css3实现多个元素依次显示效果
2017/12/12 HTML / CSS
美国羽绒床上用品第一品牌:Pacific Coast
2018/08/25 全球购物
丝芙兰新加坡官网:Sephora新加坡
2018/12/04 全球购物
大学生文员专业个人求职信范文
2014/01/05 职场文书
个人近期表现材料
2014/02/11 职场文书
标准化管理实施方案
2014/02/25 职场文书
2014年大学生预备党员思想汇报1000字
2014/09/13 职场文书
意外伤害赔偿协议书
2014/09/16 职场文书
运动会广播稿200字
2014/10/18 职场文书
2015年度服装销售工作总结
2015/03/31 职场文书
离婚起诉书怎么写
2015/05/19 职场文书
2016年感恩教师节活动总结
2016/04/01 职场文书