1

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

forum_model
category_model
user_model
subject_model

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

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

我正在考虑像这样设置 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()

4

1 回答 1

3

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

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

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

但是,通常在 MVC 中,模型彼此不了解是一种很好的做法。我提醒您不要让您的论坛模型像控制器或库一样运行(否则,它应该是控制器或库!)。

于 2012-04-09T15:06:11.683 回答