我在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()
在 2.1.0 中,任何未在模型范围内定义的属性(即模型引用、库等)都将神奇地访问 CI 超级对象:
<?php
function __get($key)
{
return get_instance()->$key;
}
因此,只要您的论坛模型中没有$category
$user
或$subject
成员变量,这应该可以工作。
但是,通常在 MVC 中,模型彼此不了解是一种很好的做法。 我提醒你不要让你的论坛模型像控制器或库一样运行(否则,它应该是控制器或库!