Thinkphp框架中D方法与M方法的区别是什么

发布时间:2021-02-06 23:09:38

来源:亿速云

阅读:69

作者:小新

小编给大家分享一下Thinkphp框架中D方法与M方法的区别是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

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是指你的模型文件名)。

以上是“Thinkphp框架中D方法与M方法的区别是什么”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

php框架m方法详细,Thinkphp框架中D方法与M方法的区别是什么相关推荐

  1. 计算机一级vlookup函数的使用方法,电子档Excel中vlookup函数的使用方法(图解详细说明)...

    摘要: 在平时的工作中,相信很多问题在学校学习的难以用在工作当中,但是没学习到的知识点倒是出现在了我们的工作中,本文我将给大家以生动的图解(偷笑)加说明的方式详细介绍Excel中vlookup函数的使 ...

  2. display方法php,thinkphp 控制器中 display()步骤实现的原理

    thinkphp 控制器中 display()方法实现的原理 thinkphp 控制器中 display()方法实现的原理是什么 display()方法中可以不填写参数 根据调用的方法名称来自动查找模 ...

  3. pythoncv2模块详细介绍_python中cv2模块的安装方法

    python中cv2模块的安装方法 发布时间:2020-07-09 14:40:18 来源:亿速云 阅读:115 作者:清晨 小编给大家分享一下python中cv2模块的安装方法,希望大家阅读完这篇文 ...

  4. python3中format方法_[翻译]python3中新的字符串格式化方法-----f-string

    从python3.6开始,引入了新的字符串格式化方式,f-字符串. 这使得格式化字符串变得可读性更高,更简洁,更不容易出现错误而且速度也更快. 在本文后面,会详细介绍f-字符串的用法. 在此之前,让我 ...

  5. java 获取对象方法有哪些方法有哪些方法有哪些_Java中创建String 对象的方法有哪些...

    Java中创建String 对象的方法有哪些 发布时间:2020-11-25 16:45:30 来源:亿速云 阅读:71 作者:Leah 这篇文章将为大家详细讲解有关Java中创建String 对象的 ...

  6. java main方法static_在java中为什么要把main方法定义为一个static方法?

    我们知道,在C/C++当中,这个main方法并不是属于某一个类的,它是一个全局的方法,所以当我们执行的时候,c++编译器很容易的就能找到这个main方法,然而当我们执行一个java程序的时候,因为ja ...

  7. 多linux系统的安装方法,在Linux系统中安装使用WPS的方法

    这篇文章主要介绍了在Linux系统中安装使用WPS的方法,在Linux上缺少微软的office的情况下,WPS实为办公文件处理的不二选择,需要的朋友可以参考下 Kingsoft Office 是一套办 ...

  8. 【S操作】更新网络视频下载方法详细步骤,m3u8格式文件视频文件下载方法,gohls使用详细步骤...

    一个月前搞过这个功能,并且发了简单步骤的文章,今天需要使用这个功能,有些地方居然想不起来怎么弄了,完全没有达到我笔记的目的,今天把gohls的详细步骤记录一下,各位参考少走弯路. 步骤简述: 下载go ...

  9. python中类的定义方法_在Python中定义类变量的正确方法

    这两种方法都不一定正确或不正确,它们只是两种不同的类元素:方法__init__之外的元素是静态元素:它们属于类. __init__方法中的元素是对象(self)的元素:它们不属于类. 使用一些代码可以 ...

最新文章

  1. 显示Flash时控制其的宽度与高度
  2. mysql查询活跃连接,mysql – 使用大量可能的连接进行查询的最佳方法
  3. java 精灵线程_Java线程的状态分析
  4. java中几种基本数据类型之间的转换
  5. Image-to-Image Translation with Conditional Adversarial Networks
  6. Springboot中使用Junit5(Jupiter)和Mockito
  7. c盘空间太小怎么办 c盘如何扩展分区
  8. pytorch制作数据集
  9. 小米无线路由器服务器用户名和密码忘了,小米无线路由器忘记了后台登录密码怎么办?忘记了小米路由器web页面的管理密码怎么找回?- 家用路由网...
  10. 提示计算机中丢失 opencv_world300d.dll
  11. CAD许可检出超时,该执行什么操作 简单三步即可
  12. VLDB2017论文阅读-Cohort Query Processing
  13. 搭建CTPN网络(基于windows与tensorflow)
  14. 北京数码视讯s905l固件_数码视讯Q6联通版S905L芯片第三方刷机固件
  15. 实现弹簧柔性状态的2种方式 | Solidworks教程
  16. C语言用数组1. 简单约瑟夫环问题: N个人,编号从1~N围成一圈,输入一个数T,从1号开始报数,报到T的人出圈;下一人又从1开始报数,下一个报到T的人出圈,输出出圈顺序。 考虑问实现约瑟夫环问题
  17. zw黑天鹅足彩实盘测试5月数据包
  18. 阿里云轻量应用服务器环境搭建-设置通过密钥登录服务器
  19. 北京市公安局“人工智能安全研究中心”和“关键信息基础设施保护中心”2022年公开招聘工作人员公告
  20. 冷静下来想想,员工离职这事真能“防得住”吗?

热门文章

  1. python docx 合并文档 图片_Python+pymupdf处理PDF文档案例6则
  2. 快速开发后台不用太多代码的 tp5_小程序·云开发优劣简述
  3. php菲波那切数列,php如何实现菲波那切数列
  4. oracle 安装找不到服务,win7 下安装oracle 11g出现错误: 启动服务出现错误 找不到服务OracleMTSRecoveryService...
  5. java 的分类_java的基本类型(转)
  6. influxdb 客户端工具_性能工具之Jmeter小白入门系列之六
  7. python中定义字符串_Python中的字符串String
  8. php生成extjs下拉树json数据格式
  9. [蓝桥杯]算法提高 秘密行动(动态规划)
  10. StratifiedKFold和KFold(5折验证)交叉验证的联系和区别Python实例