2011-06-07 100 views
2

我使用HMVC的Codeigniter中的Tank Auth库和整个坦克auth mvc文件都在它自己的模块中,名为'auth'。罐AUTH加载使用一个文件夹(AUTH)内发现的图(domain.com/application/modules/auth/views/auth/login_form.php):HMVC和文件夹中的视图(Codeigniter)

$this->load->view('auth/login_form', $data); 

据我知道上面的代码将加载在没有HMVC的情况下,auth文件夹内的login_form.php正确。然而,随着HMVC,我需要将下面的代码来获取视图加载:

$this->load->view('auth/auth/login_form', $data); 

是否存在,我们应该改变,因此我们没有提及由(模块名称)的视图文件中的设置/(views文件夹名称)/(视图文件名)?或者这是完全正常的,大多数人这样做?

看起来很麻烦,我必须将模块文件夹名称'auth'添加到每个view()函数调用中,并且如果更改模块文件夹的名称,则更改所有这些文件夹。

回答

3

假设你正在使用Modular Extensions - HMVC

如果你有auth设置为一个模块已经,你可以叫:

$this->load->view('login_form', $data); 

文件/views/login_form.php将从目前的模块中进行加载。这适用于模型,语言文件,库等。将模块视为自己的应用程序,这是您通常会执行的操作。

此外,加载其他模块或模块的目录外的控制器的文件,你可以使用$this->load->view('auth/login_form');

如果没有找到该文件,它会检查其他模块路径包括默认目录。这可能是也可能不是其他HMVC包的工作方式,我不确定 - 但这是MX工作的方式。

+0

我按照https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home上的步骤安装了HMVC。我是否需要做其他事情来将auth设置为模块? auth已经在模块文件夹中,以及它的视图和控制器等。我读过关于扩展MY_controller的信息,请问我目前正在扩展CI_controller吗? – Nyxynyx 2011-06-07 17:56:57

+0

顺便说一句,我想在auth模块中加载/views/auth/login_form.php。现在看来我只能用$ this-> load-> view('auth/auth/login_form',$ data)调用它。 – Nyxynyx 2011-06-07 17:58:09

+0

你是否拥有一个模块中的* auth文件,或者它们中的一些还在默认目录中?并确保:您是否从auth模块内的控制器调用此项?为什么你在'auth/views /'中有一个名为'auth'的子目录?你不需要它,将视图文件移动到模块中的'/ views'中。 – 2011-06-07 17:59:25