广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >ThinkPHP中d()和m()的区别有哪些
  • 122
分享到

ThinkPHP中d()和m()的区别有哪些

2023-06-14 08:06:29 122人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关ThinkPHP中d()和m()的区别有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。区别:M方法用于高效实例化一个基础模型类;而D方法用于实例化一个用户定义模型类。M方法

这篇文章将为大家详细讲解有关ThinkPHP中d()和m()的区别有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

区别:M方法用于高效实例化一个基础模型类;而D方法用于实例化一个用户定义模型类。M方法不需要创建模型类文件,M方法不会读取模型类;而D方法必须要创建模型类。

M方法和D方法的区别

  • Thinkphp 中M方法和D方法都用于实例化一个模型类,M方法用于高效实例化一个基础模型类,而 D方法 用于实例化一个用户定义模型类。

  • M方法不需要创建模型类文件,M方法不会读取模型类,所以默认情况下自动验证是无效的,但是可以通过动态赋值的方式实现;而D方法必须有创建模型类。

使用M方法

  如果是如下情况,请考虑使用 M方法:

  • 对数据表进行简单的 CURD 操作而无复杂的业务逻辑时

  • 只有个别的表有较为复杂的业务逻辑时,将 M方法 与实例化 CommonModel 类进行结合使用

M方法 甚至可以简单看着就是对参数表名对应的数据表的操作:

$User = M('User');

使用D方法

  如果是如下情况,请考虑使用 D方法:

  • 需要使用 ThinkPHP 模型中一些高级功能如自动验证功能(create()方法中实现)、关联模型等

  • 业务逻辑比较复杂,且涉及的表众多

  • 将业务逻辑定义在了自定义的模型类里面(Lib/Model目录下),而想在操作中实现这些业务逻辑

  另外 D方法 不支持跨项目调用,需要使用:

$User = D('User', 'Admin');    // 实例化 Admin 项目下面的 User 模型 $User = D('Admin.User');        // 启用了项目分组

提示

  启用了项目分组后,Model 类并不必然对应着项目分组。多个项目组之间共有的模型类,统一放在 Model 目录下,可以直接使用D('ModelName') 实例化。而 D('User.UserInfo') 并不表示 User 一定是一个项目分组,也可以仅仅是对 Model 下文件的一个分类目录,D('User.UserInfo') 实例化的是 User 目录下的 UserInfo 模型类。

总结

  M方法 和 D方法 都可以在模型类文件不存在的情况下直接使用的,但显然 M方法 更高效;但要使用模型类里面业务逻辑,就必须使用 D方法。

  一个比较形象的比喻就是:M方法 就如一台刚装好操作系统的电脑,只能使用一些基本功能;而 D方法 就如在装好的系统上再安装了一些如 Office、QQ 等应用软件,功能更加强大,同时整个电脑运行速度也变慢了。

关于“ThinkPHP中d()和m()的区别有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: ThinkPHP中d()和m()的区别有哪些

本文链接: https://www.lsjlt.com/news/269247.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • ThinkPHP中d()和m()的区别有哪些
    这篇文章将为大家详细讲解有关ThinkPHP中d()和m()的区别有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。区别:M方法用于高效实例化一个基础模型类;而D方法用于实例化一个用户定义模型类。M方法...
    99+
    2023-06-14
  • thinkphp中m方法与d方法有哪些区别
    本篇内容介绍了“thinkphp中m方法与d方法有哪些区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!thinkphp中m方法与d方法的区...
    99+
    2023-06-22
  • smarty和thinkphp的区别有哪些
    本篇内容主要讲解“smarty和thinkphp的区别有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“smarty和thinkphp的区别有哪些”吧!smarty和thinkphp的区别为:...
    99+
    2023-06-29
  • thinkphp和vuejs的区别有哪些
    今天小编给大家分享一下thinkphp和vuejs的区别有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。框架类型Thin...
    99+
    2023-07-05
  • dedecms和thinkphp有哪些区别
    本文小编为大家详细介绍“dedecms和thinkphp有哪些区别”,内容详细,步骤清晰,细节处理妥当,希望这篇“dedecms和thinkphp有哪些区别”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。区别:1、...
    99+
    2023-06-29
  • thinkcmf和thinkphp有哪些区别
    这篇文章主要介绍了thinkcmf和thinkphp有哪些区别的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇thinkcmf和thinkphp有哪些区别文章都会有所收获,下面我们一起来看看吧。区别:1、thin...
    99+
    2023-06-29
  • ci框架和thinkphp有哪些区别
    这篇文章给大家分享的是有关ci框架和thinkphp有哪些区别的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。区别:1、CI没有强制绑定模板对数据库的操作,而ThinkPHP有;2、ThinkPHP讲究使用的便利性...
    99+
    2023-06-22
  • ThinkPHP中I()和create()方法有哪些区别
    这篇文章主要介绍了ThinkPHP中I()和create()方法有哪些区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。ThinkPHP中I()方法接收数据和create()...
    99+
    2023-06-22
  • thinkphp完整版和核心版有哪些区别
    这篇文章将为大家详细讲解有关thinkphp完整版和核心版有哪些区别,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。thinkphp完整版和核心版的区别:1、核心版本去除了第三方扩展和驱动,仅保留了核心类库...
    99+
    2023-06-29
  • Thinkphp中重定向redirect和跳转success、error的区别有哪些
    这篇文章主要介绍了Thinkphp中重定向redirect和跳转success、error的区别有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Thinkphp中 重定向...
    99+
    2023-06-14
  • js中==和===的区别有哪些
    这篇文章将为大家详细讲解有关js中==和===的区别有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。JavaScript是什么JavaScript是一种直译式的脚本语言,其解释器被称为JavaScri...
    99+
    2023-06-15
  • Kotlin中?和!!的区别有哪些
    这篇文章给大家分享的是有关Kotlin中和!!的区别有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言很多同学刚上手使用Kotlin知道它有针对Java NullPointerException的管理,而在...
    99+
    2023-06-14
  • Numpy.array中[:]和[::]的区别有哪些
    小编给大家分享一下Numpy.array中[:]和[::]的区别有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!array([:])>>>&...
    99+
    2023-06-15
  • mysql中:=和=有哪些区别
    这篇文章主要介绍了mysql中:=和=有哪些区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。:=和=的区别= 只有在set和update时...
    99+
    2022-10-18
  • MyBatis中#{}和${}有哪些区别
    目录前言#{} 和 ${} 的区别#{} 和 ${} 的实例:假设传入参数为 1实例步骤一实例步骤二实例步骤三#{} 和 ${} 的大括号中的值#{} 和 ${} 在使用中的技巧和建...
    99+
    2022-11-12
  • golang中&和*的区别有哪些
    本文将为大家详细介绍“golang中&和*的区别有哪些”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“golang中&和*的区别有哪些”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体...
    99+
    2023-06-06
  • Java中==和equals()的区别有哪些
    小编给大家分享一下Java中==和equals()的区别有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1. ==== 是运算符,用来判断两个值是否相等,==可以使用在基本数据类型变量和引用数据类型变量中1.1 基本数...
    99+
    2023-06-25
  • php=== 和==的区别有哪些
    这篇文章主要介绍“php === 和==的区别有哪些”,在日常操作中,相信很多人在php === 和==的区别有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php === 和==的区别有哪些”的疑惑有所...
    99+
    2023-06-25
  • C++中thread和pthread的区别有哪些
    C++中的thread是C++11标准引入的线程库,而pthread是POSIX标准中定义的线程库。它们之间的主要区别如下:1. 语...
    99+
    2023-10-20
    C++
  • android中java和Kotlin的区别有哪些
    Android中Java和Kotlin是两种不同的编程语言。以下是它们之间的一些区别: 语法:Java使用较为繁琐的语法,而Ko...
    99+
    2023-10-25
    android java Kotlin
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作