| 제목 | 도와주세요!!!ㅠ.ㅠ | ||
|---|---|---|---|
| 글쓴이 | 꼬마호랭이 | 작성시각 | 2013/01/15 19:32:07 | 
|  | |||
| 부모 컨트롤러 하나에 아이 컨트롤러 2개를 놓고 데이터를 쉐어할려고 하는데 안되네요.. 
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();
    }
}요 아래 두개가 아이 컨트롤러들인데... 
<?php
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);
    
    }
   }
   ?>
 그리고.. 
<?php
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);
  }
 }
}
 로그인쪽에서는 제대로 저장되어 있는 오브젝트가 메인에서는 NULL값만 내뱉네요... 제가 잘못 만든건가요? 아니면... 조언 부탁 드립니다... | |||
| 다음글 | 코드이그나이트를 처음 접합니다 강좌들이 다들 구버젼인듯... (2) | ||
| 이전글 | CI 자동 로그인 세션 관련 질문입니다(검색 해본 후 ... (3) | ||
| 
                                몽구스
                                /
                                2013/01/16 13:49:35 /
                                추천
                                0
                             | 
| 
                                지훈임돠
                                /
                                2013/01/17 16:46:31 /
                                추천
                                0
                             
                                CI 구조상 모든 콘트롤러가 메모리상에 올라오는게 아니라서 상속이 안될수도 있다는 생각이 드네요~ 라이브러리로 구현해보는건 어떨까요? ㅎㅎ | 
application/core/MY_Controller.php
파일 안에다가 부모 컨트롤러 (My_data ) 넣으시고요.
My_data에서 Load하면 될겁니다.
http://ellislab.com/codeigniter/user-guide/general/core_classes.html
http://stackoverflow.com/questions/8004385/codeigniter-my-controller-is-it-only-possible-to-extend-core-once