CodeIgniter 2.1.0:访问模型中的模型

时间:2012-04-09 12:47:00

标签: php class codeigniter model codeigniter-2

我在CodeIgniter中有四个模型用于我正在构建的论坛:

forum_model
category_model
user_model
subject_model

我希望访问论坛模型中的类别,用户和主题模型(即:按用户/类别/主题浏览主题)但是它们需要独立于各个功能(即:添加用户/主题/类别)< / p>

还有更多的独立功能,基本上我想知道的是,如果创建一个'主'论坛模型是不好的做法(以及创建模型的最佳方法是什么),或者我应该只是做链接在控制器?

我正在考虑像这样设置forum_model:

class Forum_model extends CI_Model {
    function __construct() {
        parent::construct();
        $this->load->model('Category_model', 'category');
        $this->load->model('User_model', 'user');
        $this->load->model('Subject_model', 'subject');
    }
}

然后可能使用变量$this->$model->method()

访问方法中的其他模型

1 个答案:

答案 0 :(得分:3)

在2.1.0中,未在模型范围中定义的任何属性(即模型引用,库等)将神奇地访问CI超级对象:

<?php
function __get($key)
{
    return get_instance()->$key;
}

因此,只要您的论坛模型中没有$category $user$subject成员变量,这应该可行。

然而,通常在MVC中对于不相互了解的模型是一种很好的做法。我提醒你不要让你的论坛模型像控制器或库一样运行(否则,它应该是一个控制器或一个库!)。