【问题标题】:CodeIgniter 2.1.0: Accessing models within ModelsCodeIgniter 2.1.0:在模型中访问模型
【发布时间】:2012-04-09 12:46:59
【问题描述】:

我在 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()访问方法中的其他模型

【问题讨论】:

    标签: php class codeigniter model codeigniter-2


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 是的,我也在想同样的事情,并想出了在控制器中使用模型函数并将模型函数的结果传递给forum_model if and需要时!
    猜你喜欢
    • 2010-10-26
    • 1970-01-01
    • 2018-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多