所以我有一个用户控制器,有更新配置文件的方法等。在我正在开发的系统中,用户需要发布文章等。所以我对系统的设计感到困惑。创建文章的主要逻辑将放在article_model下。但是我该怎么称呼这些方法呢?
我个人觉得我需要有一个用户控制器进入这个系统,从逻辑上讲,用户创建文章。那么哪种设计在逻辑和最佳实践方面是完美的。
答案 0 :(得分:2)
您可以在控制器中加载多个模型,您不仅限制与控制器位于同一域中的模型。因此,如果您需要与用户控制器中的文章进行交互,那么只需加载文章模型即可。正如deceze所说,你不应该在一个控制器中调用其他控制器; 肯定违背了MVC惯例。
在您的情况下,与文章的任何互动都应该在文章控制器中,可以通过 / articles / add 等网址访问。
答案 1 :(得分:1)
我实际上使用了codeigniter,他们这样做。如果您想从您的用户或配置文件控制器发布文章,您只需创建一个实例或加载您的模型。
class ProfileController extends BaseController {
public function __construct()
{
$this->load->model('article_model');
}
public function index(){
$this->article_model->post();
}
}
答案 2 :(得分:0)
不要从另一个控制器调用控制器 您可以添加链接到任何使用配置文件调用的视图,该配置文件可以添加文章
如果您必须从另一个控制器调用控制器,您可以查看codeigniter hmvc HMVC: an Introduction and Application
答案 3 :(得分:0)
尝试将此扩展名HMVC用于CI。它允许在另一个控制器中调用控制器方法。像这样:
class Dashboard extends MX_Controller{
public $autoload = array();
public function __construct()
{
parent::__construct();
}
public function index()
{
$params = 'some_params';
$data['some_data'] = Modules::run('another_controller/method', $params);
}
}
another_controller
- 简单CI控制器,展开MX_Controller
。