Idea模型实例化
无论是数据库对象还是模型对象,Idea都进行了很好的单例化实现。
简要的说实例化模型对象有三种方法,我们推荐使用第二方法:
- 第一种方法较为传统,就是简单的new出一个对象
<?php namespace apphomecontroller;
class Index extends Common{
public function userInfo(){
$obj_user = new apphomemodelUser();
$userInfo = $obj_user->userInfo();
}
}
* 第二种方法是使用工厂模式实例化出单例模型,如果需要模型跨模块(平台)调用时,可以这样实例化
<?php
namespace apphomecontroller;
class Index extends Common{
public function userInfo(){
$obj_user=systemModel::getModel("apphomemodelUser");
$userInfo = $obj_user->userInfo();
}
}
>[warning]注意:第一、二种方法支持跨模块调用(特殊需求),第三种不支持
* 第三种方法使用内置的辅助函数`model()`,主要是对第二种方法的函数封装,但不支持跨模型。可以进行模型单例化
共方法辅助函数`model()`有两个参数,直接在控制器类里面调用就行
| model方法参数 | 值 | 属性 |
| -- | -- | -- |
| 参数1 | 模型名 | 必要 |
| 参数2 | 模型方法名 | 可选(当调用的方法有参数时不使用) |
如果只设置了第一参数,实例化模型代码如下
```
<?php
namespace apphomecontroller;
class Index extends Common{
public function User(){
$objUser=model("User");
$userInfo=$objUser->userInfo();
}
}
```
如果设置了第二个参数,上面的代码等效于
```
<?php
namespace apphomecontroller;
class Inde extends Common{
public function userInfo(){
//实例化并调用模型操作
$user_info=model("User","userInfo");
}
}
```
>[danger]注意:但如果调用的模型方法需要传参,则不要使用第二参数