模型实例化(TP)
来源:互联网 发布:uuu网络加速器 编辑:程序博客网 时间:2024/06/14 12:02
D方法实例化
上面实例化的时候我们需要传入完整的类名,系统提供了一个快捷方法D用于数据模型的实例化操作。
①
要实例化自定义模型类,可以使用下面的方式:
<?php//实例化模型$User = D('User');// 相当于 $User = new \Home\Model\UserModel();// 执行具体的数据操作$User->select();
当 \Home\Model\UserModel 类不存在的时候,D函数会尝试实例化公共模块下面的 \Common\Model\UserModel 类。
D方法的参数就是模型的名称,并且和模型类的大小写定义是一致的。
②
D方法可以自动检测模型类,如果存在自定义的模型类,则实例化自定义模型类,如果不存在,则会实例化系统的\Think\Model基类,同时对于已实例化过的模型,不会重复实例化。
D方法还可以支持跨模块调用,需要使用://实例化Admin模块的User模型D('Admin/User');//实例化Extend扩展命名空间下的Info模型D('Extend://Editor/Info');
注意:跨模块实例化模型类的时候 不支持自动加载公共模块的模型类。
M方法实例化模型
D方法实例化模型类的时候通常是实例化某个具体的模型类,如果你仅仅是对数据表进行基本的CURD操作的话,使用M方法实例化的话,由于不需要加载具体的模型类,所以性能会更高。
例如:
// 使用M方法实例化$User = M('User');// 和用法 $User = new \Think\Model('User'); 等效// 执行其他的数据操作$User->select();
M方法也可以支持跨库操作,例如:
// 使用M方法实例化 操作db_name数据库的ot_user表$User = M('db_name.User','ot_');// 执行其他的数据操作$User->select();
M方法的参数和\Think\Model类的参数是一样的,也就是说,我们也可以这样实例化:
$New = M('new','think_',$connection);// 等效于 $New = new \Think\Model('new','think_',$connection);
实例化空模型类
如果你仅仅是使用原生SQL查询的话,不需要使用额外的模型类,实例化一个空模型类即可进行操作了,例如:
//实例化空模型$Model = new Model();//或者使用M快捷方法是等效的$Model = M();//进行原生的SQL查询$Model->query('SELECT * FROM think_user WHERE status = 1');
我们在实例化的过程中,经常使用D方法和M方法,这两个方法的区别在于M方法实例化模型无需用户为每个数据表定义模型类,如果D方法没有找到定义的模型类,则会自动调用M方法。
0 0
- 模型实例化(TP)
- tp实例化一个基础功能(供应商)
- tp 视图模型
- TP模型---事务支持
- ThinkPHP(模型实例化)
- 树莓派实战实例(六)安装无线网卡TP-WN322G+
- Thinkphp - 实例化模型(Model)
- 模型实例化 thinkphp
- ThinkPHP 实例化模型
- 模型实例化
- Yii2 模型实例化
- ThinkPHP实例化模型
- tp中getField使用实例
- tp 里面 select2 筛选实例
- TP框架下模型及连贯操作
- TP框架的关联模型的使用
- tp框架利用model模型CRUD操作
- 每天学点tp-模型(二)
- Binary Tree Zigzag Level Order Traversal
- HTML中目录的调用
- bx和loop
- Yahoo! 十三条 : 前端网页优化(13+1)条原则
- RabbitMQ发布/订阅注意事项
- 模型实例化(TP)
- nodejs中的继承
- FFMPEG学习【libavcodec】:编解码器:硬件加速器桥:VDPAU解码器和渲染器
- Java对象的序列化与反序列化
- WebStudy00_HTML+CSS
- WebStudy01_JavaScript
- 51Nod 1049 最大子段和
- column命令+pagesize命令+linesize命令+ttitle命令+btitle命令+break命令/comput命令
- Unity AudioSource播放事件监听