1.加载模型
在控制器和模型里面都可以通过$this->model($model_name,$alias_name)加载一个模型,其中$model_name是模型文件名(不含配置后缀)也就是类名,$alias_name是别名这个参数是可选的。
2. 模型加载支持子文件夹
比如模型目录下有个home文件夹里面有个News.model.php模型类文件,
那么就可以通过$this->model('home/News')加载这个模型类,
然后就可以通过$this->model->News访问这个模型类了。
3. 使用模型
加载完毕模型后,就可以通过$this->model->$model_name进行访问了。
如果指定了$alias_name那么就要通过$this->model->$alias_name进行访问。
比如:
加载User模型,$this->model('User','vip');
那么就可以通过$this->model->vip访问这个模型了。
另外,还可以通过$this->model->$model_name直接使用模型而不用提前加载。需要注意的是$model_name要和模型类名称一样,区分大小写,而且模型不能在模型子目录里面。
比如:
有模型 models/MUser.model.php,那么可以通过 $this->model->MUser直接使用。
而不用先通过$this->model()加载。
如果
MUser模型在子文件夹models/user/MUser.model.php那么这样就不能通过这种方式使用,
需要先通过$this->model('user/MUser')加载。
4.代码规范
模型类必须继承MpModel类,而且如果有构造方法那么构造方法里面必须先调用父类的构造方法。
示例如下:
<?php
class User extends MpModel {
public function __construct() {
parent::__construct();
}
public function sayHello($name) {
$this->model('User2');
$this->model->user2->sayHello('hello');
echo 'hello:' . $name;
}
}
4.和模型相关的系统配置
1.存放模型文件的文件夹路径名称,支持数组可以指定多个目录。比如:array($folder1_path,$folder2_path)
$system['model_folder'] = $system['application_folder'] . '/models';
2. 模型文件名称后缀,比如.model.php
$system['model_file_subfix'] = '.model.php';