Templates Codeigniter中的HMVC和模板库(由Phil Sturgeon提供)
我正在使用和(由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错误
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_控制器类。”