2012-04-09 68 views
1

我在笨4种型号的论坛我建立:笨2.1.0:模型内访问模式

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()

回答

3

在2.1.0方法中的其他车型,任何财产(即模型参考,图书馆等)在模型的范围内未定义将神奇地访问CI超级对象:

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

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

但是,通常在MVC中对于不知道对方的模型来说是很好的做法。我会告诫你不要让你的论坛模型像一个控制器或一个库(否则,它应该是一个控制器或一个库!)。

+0

是的,我在想同样的事情,并提出了解决方案,在控制器中使用模型函数,并在需要时将模型函数的结果传递给'forum_model'! – 2012-04-09 19:01:32