码迷,mamicode.com
首页 > Web开发 > 详细

ThinkPHP-M方法和D方法

时间:2015-12-05 12:37:21      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:

参考:http://blog.csdn.net/yanhui_wei/article/details/8037367

         http://blog.csdn.net/yanhui_wei/article/details/8037323

         http://www.thinkphp.cn/simple/functions_d.html

         http://www.thinkphp.cn/simple/functions_m.html

M方法:

M方法的调用格式:

M(‘[基础模型名:]模型名‘,‘数据表前缀‘,‘数据库连接信息‘)

 

1.在没有定义任何模型的时候,用下面的方法实例化一个模型类:

$User = M(‘User‘);

$User->select();  

其实等效于:   

$User = new Model(‘User‘);

2.实例化其他公共模型类

$User = M(‘CommonModel:User‘);

其实等效于:

$User = new CommonModel(‘User‘);//一种组合的形式,用于扩展一些通用的逻辑功能 

3.传入表前缀、数据库和其他信息 

M方法有三个参数,第一个参数是模型名称(可以包括基础模型类和数据库),第二个参数用于设置数据表的前缀(留空则取当前项目配置的表前缀),第三个参数用于设置当前使用的数据库连接信息(留空则取当前项目配置的数据库连接信息)

$User = M(‘db2.User‘,‘think_‘);

 表示实例化Model模型类,并操作db2数据库中的think_user表。

 

$User = M(‘db1.User‘,null);  

表示实例化Model模型类,并操作db1数据库中的user表。

 

$User = M(‘User‘,‘think_‘,‘mysql://user_a:1234@localhost:3306/thinkphp‘);  

表示基础模型类用Model,然后对think_user表进行操作,用user_a账号进行数据库连接,操作数据库是thinkphp。

 

第三个连接信息参数可以使用DSN配置或者数组配置,甚至可以支持配置参数。例如,在项目配置文件中配置了:  ‘DB_CONFIG‘=>‘mysql://user_a:1234@localhost:3306/thinkphp‘;  

则可以使用:  

$User = M(‘User‘,‘think_‘,‘DB_CONFIG‘);

 

 

基础模型类和数据库可以一起使用,例如:  

$User = M(‘CommonModel:db2.User‘,‘think_‘);  

如果要实例化分层模型的话,利用公共模型类的方式,我们可以使用:   

M(‘UserLogic:User‘);  来实例化UserLogic,虽然这样做的意义不大,因为可以用D(‘User‘,‘Logic‘);  实现同样的功能。

 

 

 

 D方法:

用于实例化自定义模型类,是ThinkPHP框架对Model类实例化的一种封装,并实现了单例模式,支持跨项目和分组调用。 

调用格式如下:  

D(‘[项目://][分组/]模型‘,‘模型层名称‘) 

D方法可以自动检测模型类,如果存在自定义的模型类,则实例化自定义模型类,如果不存在,则会实例化Model基类,同时对于已实例化过的模型,不会重复去实例化。

1.$User = D(‘User‘);

    会导入当前项目下面的Lib/Model/UserModel.class.php文件,然后实例化UserModel类,等效于:   

     import(‘@.Model.UserModel‘);   

     $User = new UserModel(); 

2.D方法可以支持跨分组和项目实例化模型

//实例化Admin项目的User模型   

D(‘Admin://User‘)   

//实例化Admin分组的User模型   

D(‘Admin/User‘)

注意:要实现跨项目调用模型的话,必须确保两个项目的目录结构是并列的。  

技术分享

 

ThinkPHP-M方法和D方法

标签:

原文地址:http://www.cnblogs.com/hqt2050/p/5021226.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!