文件夹中的HMVC和视图(Codeigniter)



我在带HMVC的Codeigniter中使用Tank Auth库,整个Tank Auth-mvc文件都在它自己的名为"Auth"的模块中。tank auth使用:加载在文件夹(auth)中找到的视图(domain.com/application/modules/auth/views/auth/login_form.php)

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

据我所知,上面的代码将在没有HMVC的情况下正确地在auth文件夹中加载login_form.php。然而,对于HMVC,我需要以下代码来加载视图:

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

是否有一个设置我们应该更改,这样我们就不必通过(模块名称)/(视图文件夹名称)//(视图文件名)引用视图文件了?或者这完全正常,大多数人都是这样做的?

似乎很麻烦的是,我必须将模块文件夹名称"auth"添加到每个view()函数调用中,并在更改模块文件夹名称时更改所有这些名称。

假设您使用的是模块化扩展-HMVC:

如果你已经将auth设置为一个模块,你可以调用:

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

文件/views/login_form.php将从当前模块中加载。这适用于模型、语言文件、库等。把模块想象成它自己的应用程序,这是你通常会做的。

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

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