제목 | 도와주세요!!!ㅠ.ㅠ | ||
---|---|---|---|
글쓴이 | 꼬마호랭이 | 작성시각 | 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