2013-01-14 82 views
2

我已經創建了2個控制器用於分頁,1個控制器用於模型和一個數據庫模型。 2控制器擴展到其他控制器。這樣codeigniter如何管理對象從母控制器到兩個子控制器

class MY_Data extends CI_Controller{ 
    public $layout; 
    public $xe_member; 
    public $member_srl; 
    public $is_logged_in = FALSE; 
    public $is_registerd = false; 
    public $director = array(); 
    public $fighters = array(); 
    public $logged; 

    function __construct(){ 
     parent::__construct(); 
     $this->load->model('member_login'); 
     $this->load->model('db_log'); 
     $this->layout = 'include/template'; 
    } 
    function load_data(){ 
     $this->xe_member = $this->member_login->member_check(); 
     $this->member_srl = $this->xe_member['member_srl']; 
     $this->is_logged_in = $this->xe_member['is_logged']; 
     $this->is_registerd = $this->member_login->register_check 
           ($this->member_srl); 
     if($this->is_registerd){ 
      $this->director = $this->db->where('member_srl', $this->member_srl)-> 
      limit(1)->get('fc_directors')->row(); 
      $this->fighters = $this->db->where('member_srl', $this->member_srl)-> 
      get('fc_fighters')->result(); 
     } 
    } 
} 

登錄

class Login extends MY_Data { 
public function __construct() 
{ 
    parent::__construct(); 
    $this->load->model('member_login'); 
} 
public function index() 
{ 
    if (isset($_COOKIE['PHPSESSID'])) { 
     $data['PHPSESSID'] = $_COOKIE['PHPSESSID']; 
    }else { 
     $this->load->view('include/template', 'login_error'); 
     die(); 
    } 
    $this->load_data(); 

    if($this->is_logged_in) 
    { 

     if ($this->is_registerd) { 

      $data['log'] = $this->db_log->read_all_log(); 
      $data['main_contents'] = 'main/main'; 
      $this->load->view('include/template', $data); 
     } else { 

      redirect('registration'); 
     } 
    } else { 
     $data['main_contents'] = 'login_error'; 
     $this->load->view('include/template', $data); 
    } 

} 

和主要

class Main extends MY_Data { 
function __construct() { 
    parent::__construct(); 
} 
function index(){ 
    if(!$this->logged){ 
     $data['main_contents'] = 'login/login_button'; 
     $this->load->view($this->layout,$data); 
    }else { 
     $data['main_contents'] = 'main/main'; 
     $this->load->view($this->layout,$data);    
    } 
} 

我知道是不完美的代碼,但... 什麼,我想在這裏做的:
第一次調用登錄db_data會將對象中的db存儲和主要獲取對象顯示出來。但在使用main時,我總是從母控制器中獲得null。

我只是使用控制器對象到其他控制器。

我該怎麼做?

回答

0

不應該在主要性能指標的第一行是

parent::index(); 

我猜你想擴展類登錄你的索引功能。

現在在父類指數不執行,下面的行不叫:

$this->load_data() 

包含

$this->member_login->member_check(); 

這是否解決問題了嗎?

相關問題