Codeigniter HMVC模块在根中

时间:2012-08-29 07:28:40

标签: codeigniter hmvc

我是Codeigniter HMVC的新手。我读了如何安装和使用模块,似乎一切都很好。

我正在尝试的是使用应用程序文件夹之外的模块,但没有运气。

我正在尝试浏览我的网址: localhost / contacts / admin

应用程序/配置/ config.php中

// Modular 
$config['modules_locations'] = array(
    APPPATH.'modules/' => '../../modules/',
);

ROOT /模块/联系人/控制器/ contacts.php

class Contacts extends MX_Controller  {
    var $ci;
    public function __construct() {
        parent::__construct(); 
        $this->ci =& get_instance();
        $this->load->helper('url');
    }
    function admin() {
        echo 'Controller: ROOT/Modules/Contacts<br />';
        $this->load->view('admin');
    }
}

这里似乎一切正常 - 控制器已加载,但随后我开始查看,有些事情变得疯狂:

我有2个相同的模块。 ROOT目录中有1个,应用程序目录中有另一个。控制器从ROOT模块加载,但视图来自应用程序目录(application / modules / contacts / views / admin.php)。

然后我在 application / modules / contacts / view 中删除了视图目录,得到错误:

  

无法加载请求的文件:admin.php

如果我从应用程序文件夹中删除模块目录,则会加载默认视图。

所以任何人都可以帮助弄清楚如何使用HMVC,因为直到现在我无法理解它是如何工作的。

2 个答案:

答案 0 :(得分:0)

怎么样! :

$config['modules_locations'] = array(
   APPPATH.'modules/' =>  $['HTTP_HOST'].'/ROOT/modules',
);

答案 1 :(得分:0)

默认情况下,您的视图需要在

ROOT/modules/contacts/views/

但是如果你想要自定义Views文件夹,它之前已经得到了解答。请参阅以下链接。

Loading view outside view folder with CodeIgniter