グローバル ページ ヘッダー ファイルをロードするように 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();
}
}
アプリケーション/モデル/template.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 は、メンバー情報を $this->user にロードするための CI_Model クラスの拡張です。