我正在尝试扩展 CI_Controller 类来加载我的全局页面头文件,这样我就不必在每个控制器方法的开头加载它。它似乎不起作用。我知道控制器扩展本身可以工作......如果我从构造函数中删除模型方法的调用并从我的控制器方法中加载它,控制器扩展的其余部分工作正常。但是当我从控制器扩展的构造函数中加载模型方法时,我得到一个空白页面(我还没有生成主要内容)。
有任何想法吗?
应用程序/核心/MY_Controller.php
<?php
class MY_Controller extends CI_Controller {
var $user = array();
function __construct(){
parent::__construct();
$this->load->model('member');
if($this->session->userdata('member_id')){
$this->member->get_info($this->session->userdata('member_id'));
$this->user = $this->member->info;
$this->member->update_activity($this->session->userdata('member_id'));
} else {
$this->load->helper('cookie');
if(get_cookie('Teacher Tools Member Cookie')){
$this->member->auto_login(get_cookie('Teacher Tools Member Cookie'));
} else {
$this->user = $this->member->default_info();
}
}
$this->load->model('template');
$this->template->overall_header();
}
}
应用程序/模型/模板.php
<?php
class Template extends MY_Model {
function __construct(){
parent::__construct();
}
function overall_header($title = 'Home'){
$data = array(
'BASE_URL' => base_url(),
'MAIN_NAVIGATION' => $this->main_navigation(),
'TOOLBAR' => $this->toolbar()
);
return $this->parser->parse('overall_header.tpl', $data);
}
MY_Model 是 CI_Model 类的扩展,用于将成员信息加载到 $this->user 中。