Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 模块加载中断视图加载(旧代码)_Php_Codeigniter_Codeigniter 2 - Fatal编程技术网

Php 模块加载中断视图加载(旧代码)

Php 模块加载中断视图加载(旧代码),php,codeigniter,codeigniter-2,Php,Codeigniter,Codeigniter 2,我正在试用codeIgniter和模块化扩展。到目前为止,我遵循的安装说明。现在我正在尝试来自NetTuts的教程 我使用的是CodeIgniter 2.1的实际版本和模块化扩展的实际版本(从bitbucket下载的.zip版本) 在我尝试从另一个模块的控制器运行一个方法之前,一切都正常 简而言之,设置是有两个模块(站点和登录)。在站点的控制器中有site.php(/modules/site/controllers/site.php),该方法检查用户是否登录。如果在未登录的情况下访问站点,此方法

我正在试用codeIgniter和模块化扩展。到目前为止,我遵循的安装说明。现在我正在尝试来自NetTuts的教程

我使用的是CodeIgniter 2.1的实际版本和模块化扩展的实际版本(从bitbucket下载的.zip版本)

在我尝试从另一个模块的控制器运行一个方法之前,一切都正常

简而言之,设置是有两个模块(站点和登录)。在站点的控制器中有site.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
行并产生错误。访问
logged\u-in\u区域没有问题。php
通过在站点控制器内运行
is\u logged\u-in
方法,行:

$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:我如何获得有关错误的更多信息?CodeIgniter似乎对错误输出非常保留…

如文档中所述,要从另一个模块中加载视图,您需要使用扩展MX控制器和方法:


在index.php的frontcroller中,有一行可以定义您的环境。确保该行显示
define('ENVIRONMENT','development')。这样,您将获得所有错误。它设置为
development
。错误报告是
E_ALL
。没有更改任何内容。但是,我认为您不应该从其他模块加载视图。我认为模块化扩展的概念是可以调用其他控制器,而不是其他视图。我建立了一个库来处理我的登录状态和一切。这样你可以在任何地方使用它。然后,您仍然可以创建一个模块来显示loginforms和所有内容。这在我看来是合乎逻辑的。我试图加载的视图与(该视图的)调用方法位于同一模块中。但是,我将接受关于图书馆的提示。下一件事我会调查的。那我就帮不了你了。你所做的对我来说也是合乎逻辑和有效的。我自己没用过HMVC。您可以尝试向MX_加载程序添加一些调试_语句。你可以查看日志文件,里面可能有很多信息。我们开始吧!我让我的site.php扩展了
CI\u控制器
。用
MX_控制器
替换它就成功了。但是,我仍然没有从其他模块加载视图!使用简单的
CI_控制器
时,另一个控制器的“跨模块”负载可以工作。。。好。。。不必了解一切。。。