首页 后端开发 php教程 ThinkPHP快捷步骤D和M的区别

ThinkPHP快捷步骤D和M的区别

Jun 13, 2016 am 10:39 AM
model new test user

ThinkPHP快捷方法D和M的区别

简单说使用M 方法的话,是不需要定义对应的模型类的(即使有定义也不会读取),通常这样的模型仅能调用一些系统基础模型类Model类里面的一些方法。而使用D方法实例化模型的话,必须有对应的模型类文件,可以调用一些模型自定义的方法或者属性,另外在Mode对应文件里面有自动验证或者函数之类的业务逻辑也必需用D

再打个比方说M是刚安装好的操作系统,只有系统自带的应用 还没有自己安装的应用(所以只能调用内置的Model提供的属性和方法)D是已经安装了很多的第三方的应用程序 使用起来更丰富一些(可以调用模型类自己定义的属性和方法)但是很明显,安装了很多的第三方应用后系统性能降低了,执行变慢了,但是功能显然强大了。

?

D方法用于快速创建模型对象的实例,并且单例化,例如:

$User = D("User");

等效为

$User = new UserModel();

?

m实例化参数是数据库的表名.
d
实例化的是你自己在model文件夹下面建立的模型文件.

?

DM的区别主要在于:

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

D方法必须有创建模型类,我们可以用下面两种方法去创建一个数据表的映射对象

第一种:$Test = D('Test')

第二种:$Test = new Model('Test')

虽然这两种都可以对数据进行select,insert,delete,udpate操作,在数据验证上有很大的不同,用第一种方式实例一个模型就会有数据检查功能,如果 title 没有填写的话就会提示请输入标题(这个是tp提供的一个自动验证功能,当然也需要在相应的model中定义好验证条件);

D方法可以自动检测模型类,不存在时他会抛出一个异常。同时对于已实例化得得模型不会再去重复实例化(单例)。

默认的D方法只能支持调用当前的项目(或者叫做应用)下的模型

?

例如:$user = new UserModel();

等价于$user = D('user');

?

如果实例化的是一个空模型

例如 $Demo = new Model();

那么它等价于 $Demo = M();

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

华为Watch GT 5智能手表获得新功能更新 华为Watch GT 5智能手表获得新功能更新 Oct 03, 2024 am 06:25 AM

华为正在全球推出Watch GT 5和Watch GT 5 Pro智能手表的软件版本5.0.0.100(C00M01)。这两款智能手表最近在欧洲推出,标准型号是该公司最便宜的型号。这和谐

铁拳桑德斯上校的梦想被肯德基炸了 铁拳桑德斯上校的梦想被肯德基炸了 Oct 02, 2024 am 06:07 AM

《铁拳》系列总监原田胜宏曾认真尝试过将桑​​德斯上校带入这款标志性格斗游戏中。在接受 TheGamer 采访时,原田透露,他向日本肯德基提出了这个想法,希望将这位快餐传奇人物纳入其中。

Cyber​​truck FSD 评论称赞快速车道切换和全屏可视化 Cyber​​truck FSD 评论称赞快速车道切换和全屏可视化 Oct 01, 2024 am 06:16 AM

特斯拉正在推出最新的全自动驾驶(监督)版本 12.5.5,并最终带来了承诺的 Cyber​​truck FSD 选项,距离皮卡上市十个月后,该功能包含在基础系列的装饰价格中。 F

Garmin 通过新的更新发布了针对多款智能手表的冒险赛车活动改进 Garmin 通过新的更新发布了针对多款智能手表的冒险赛车活动改进 Oct 01, 2024 am 06:40 AM

Garmin 将于本月底为其最新的高端智能手表提供一组新的稳定更新。回顾一下,该公司发布了系统软件 11.64,以解决 Enduro 3、Fenix E 和 Fenix 8 的高电池消耗问题(亚马逊售价 1,099.99 美元)。

第一眼:即将推出的 Anker Zolo 4 端口 140W 带显示屏壁式充电器的拆箱视频泄露 第一眼:即将推出的 Anker Zolo 4 端口 140W 带显示屏壁式充电器的拆箱视频泄露 Oct 01, 2024 am 06:32 AM

2024 年 9 月早些时候,Anker 的 Zolo 140W 充电器被泄露,这是该公司首款带显示屏的壁式充电器,这引起了轰动。现在,小李TV在YouTube上发布的新开箱视频让我们亲眼目睹了这款hi

搭载 HyperOS 的新款小米米家石墨烯油汀到货 搭载 HyperOS 的新款小米米家石墨烯油汀到货 Oct 02, 2024 pm 09:02 PM

小米即将在中国推出米家石墨烯油汀取暖器。该公司最近在其优品平台上成功举办了一次智能家居产品众筹活动。根据页面显示,该设备已经开始发货至

三星 Galaxy Z Fold 特别版透露将于 10 月底登陆,但名称出现冲突 三星 Galaxy Z Fold 特别版透露将于 10 月底登陆,但名称出现冲突 Oct 01, 2024 am 06:21 AM

三星期待已久的“特别版”可折叠手机的推出又迎来了另一个转折。最近几周,有关所谓 Galaxy Z Fold 特别版的传言相当安静。相反,焦点已转移到 Galaxy S25 系列,包括

Manjaro 24.1'Xahea”与 KDE Plasma 6.1.5、VirtualBox 7.1 等一起发布 Manjaro 24.1'Xahea”与 KDE Plasma 6.1.5、VirtualBox 7.1 等一起发布 Oct 02, 2024 am 06:06 AM

Manjaro 已有十多年的历史,被认为是最用户友好的 Linux 发行版之一,适合初学者和高级用户,易于安装和使用。这个基于 Arch 的发行版主要在奥地利、德国和法国开发

See all articles