我正在尝试codeIgniter和模块化扩展。到目前为止,我遵循了 bitbucket 上 wiredesignz 的安装说明。现在我正在尝试教程HMVC:NetTuts的介绍和应用程序。
我正在使用CodeIgniter 2.1的实际版本和模块化扩展的实际版本(从bitbucket下载.zip版本(来执行此操作。
一切正常,直到我尝试从另一个模块的控制器运行方法。
简而言之,设置是,有两个模块(站点和登录(。在站点的控制器中,有一个站点.php(/modules/site/controllers/site.php
(具有检查用户是否已登录的方法。如果在未登录的情况下访问站点,此方法将退出脚本执行。由于此方法在逻辑上属于登录模块,因此作者建议将其移动到那里。所以它然后被移动到/modules/login/controllers/login.php
.
现在的问题是,如何从站点模块中访问登录模块的方法。教程中略有调整的代码:
// modules/site/controllers/site.php
function __construct()
{
// parent::Controller();
// replaced with:
parent::__construct();
// modules::run('login/is_logged_in');
// replaces with:
$this->load->module('login')->is_logged_in();
}
像这样,我收到一个错误:
无法加载请求的文件:logged_in_area.php
有问题的方法也在站点模块中:
// modules/site/controllers/site.php
function members_area()
{
$this->load->view('logged_in_area');
}
脚本一直执行到load->view
行并生成错误。使用以下行从站点控制器中运行 is_logged_in
方法访问logged_in_area.php
没有问题:
$this->is_logged_in();
有什么想法吗?
编辑:
应用程序树:
/application
/...
/modules
/login
/controllers
login.php
/models
/views
login_form.php
signup_form.php
signup_successful.php
/site
/controllers
site.php
/models
membership_model.php
/views
logged_in_area.php
PS:如何获得更多有关错误的信息?代码点火器似乎对错误输出非常保留...
如此处的文档中所述,要从另一个模块中加载视图,您需要使用扩展的 MX 控制器和方法:
<?php echo Modules::run('module/controller/method', $param, $...); ?>