Templates Codeigniter中的HMVC和模板库(由Phil Sturgeon提供)

Templates Codeigniter中的HMVC和模板库(由Phil Sturgeon提供),templates,codeigniter,hmvc,Templates,Codeigniter,Hmvc,我正在使用和(由Phil Sturgeon编写)。在我的代码中使用Modules::run时会出现问题: $this->template->title("Some title")->set_partial('header', 'showmessage')->build('showanothermessage', $data); 在showmessage.php部分视图中: echo Modules::run("goodbye"); 错误页面将显示为: 遇到PHP错误

我正在使用和(由Phil Sturgeon编写)。在我的代码中使用
Modules::run
时会出现问题:

$this->template->title("Some title")->set_partial('header', 'showmessage')->build('showanothermessage', $data);
在showmessage.php部分视图中:

echo Modules::run("goodbye");
错误页面将显示为:

遇到PHP错误

严重性:通知

消息:未定义的属性:再见::$agent

文件名:libraries/template.php

电话号码:122

致命错误:对成员函数的调用已启用 中的非对象 D:\Binh\wamp\www\codeigniter\application\libraries\template.php on 第122行

如何解决这个问题。提前谢谢

更新 我的
再见
控制器:

class GoodBye extends MY_Controller{
        function __construct(){
            parent::__construct();
        }
        function Index(){ echo "Goodbye"; }
}
我的
我的\u控制器

class MY_Controller extends CI_Controller{
    function __construct(){
        parent::__construct();
        // default layout
        $this->template->set_layout("home_layout");
    }
}
我的
自动加载
文件:

$autoload['packages'] = array();
$autoload['libraries'] = array('database','session','template');
$autoload['helper'] = array();
$autoload['config'] = array();
$autoload['language'] = array();
$autoload['model'] = array();

我已将我的\u控制器更改为:

class MY_Controller extends MX_Controller{
    function __construct(){
        parent::__construct();
        // default layout
        $this->template->set_layout("home_layout");
    }
}

成功了

我们可以看看
再见
控制器吗,您用它扩展的任何基本控制器,以及您的
autoload.php
?这表明用户代理库未加载到
控制器中,因为
模块::运行()
独立于当前控制器运行。我已删除
父::\u构造()来自
再见
控制器,它工作正常。你能解释一下原因吗?老实说,我一点儿也不知道。
application\libraries\template.php第122行说什么呢?
this->\u is\u mobile=$this->\u ci->agent->is\u mobile()它唯一的意思是
模板::ci
不是一个对象,但我只能猜测它是如何发生的。你使用的模板库的确切版本是什么?哦,我完全错过了!是的,您必须扩展
MX_控制器
才能使用wiredesignz的HMVC,并利用扩展的加载程序类Lang等。这实际上是正确的:“要使用HMVC功能,例如Modules::run(),控制器必须扩展MX_控制器类。”