我在我的简单项目中使用HMVC,但我不知道如何在控制器内调用它们。
这是我的设置
- modules
- common
- controllers
- header
- footer
- views
- header
- footer
- foo
- controllers
- foo
- views
- foo
我的页眉和页脚控制器:
class Header extends MX_Controller {
public function __construct() {
parent::__construct();
}
public function index() {
$data['title'] = "Welcome to HMVC!";
$this->load->view('header', $data);
}
}
class Footer extends MX_Controller {
public function __construct() {
parent::__construct();
}
public function index() {
$data['links'] = array('link1', 'link2', 'link3', 'link4', 'link5', 'link6');
$this->load->view('footer', $data);
}
}
我的页眉和页脚视图很简单:
<!DOCTYPE html>
<html>
<head>
<title><?php echo $title; ?></title>
</head>
<body>
<div class="container"><!-- main wrapper -->
...
<ul style="list-style: none">
<?php foreach($links as $link) { ?>
<li><?php echo $link; ?></li>
<?php } ?>
</ul>
</div><!-- end of main wrapper -->
</body>
</html>
在我的foo控制器中,我称之为:
public function __construct() {
parent::__construct();
$this->load->model('M_Foo');
}
public function index()
{
$data['test'] = $this->M_Foo->sampleQuery();
Modules::run('common/header', $data);
Modules::run('common/footer', $data);
$this->load->view('foo_message', $data);
}
如何在控制器内调用它们? 我是HMVC的新手。
答案 0 :(得分:3)
我遇到质量极高的问题是非常罕见的,如果可以的话,我会两次提出你的问题。我对HMVC没有任何经验,只是在黑暗中拍摄,但如果你尝试引用方法而不是控制器会发生什么?
Modules::run('common/header/index', $data);
Modules::run('common/footer/index', $data);
如果这不起作用,也请试一试:
$this->load->module('common');
$this->header->index();
$this->footer->index();