CI 묻고 답하기

제목 hook 로 지정된 클래스에서 모델 사용
글쓴이 유마 작성시각 2012/11/21 15:02:32
댓글 : 4 추천 : 0 스크랩 : 1 조회수 : 16938   RSS
모델 객체를 사용할 수 있나요?

head, left/right menu, footer 에서 사용할 view를 불러오기 위해... 여러가지 값들이 필요한데..

그게 모델로 지정해놨는데... 사용할 수 있나요?
 다음글 체크박스 처리 질문. (7)
 이전글 form submit 관련? (5)

댓글

헛발이 / 2012/11/21 15:22:00 / 추천 0
네 Hook에서도 사용할 수 있는걸로 알고 있습니다..

Hook의 클레스 안에서...
$this->ci =& get_instance();
$this->ci->load->model('users');
이렇게 로드 해서 사용할 수 있습니다.
유마 / 2012/11/21 15:47:11 / 추천 0
헛발이 //

오토로드로 불러서 사용해버렸네요.. +_+;;;;;

아까도 된거 같은데 안된 이유가...

$ci =& get_instance(); 선언하고
다른 곳에서 $this->ci 이렇게 사용해서 안되었나 보네요. -_-a
헛발이 / 2012/11/21 15:50:03 / 추천 0
$ci =& get_instance();
이렇게 하셨다면

$this->load->model('users');
이렇게 사용할 수 있을텐데요..
유마 / 2012/11/21 15:52:04 / 추천 0
헛발이 //

$ci =& get_instance(); 이렇게 말고 $this->ci =& get_instance();

이렇게 받으니깐 되네요..


아마 후크에 지정된 클래스와 지정해놓은 함수만 사용하는게 아니라,

그 안에 다른 함수들도 사용해야 하거든요.. 물론, 함수 하나 안에 다 집어놓고 해도 되는데..

함수로 구분 해놔서 그것들도 ci를 사용해야 되나 보니까... 그런가 봐요...

$hook['post_controller_constructor'] = array(
    'class'    => 'BaseCommon',
    'function' => 'commonViewCheck',
    'filename' => 'Basecommon.php',
    'filepath' => 'hooks'
);


class BaseCommon
{
    function __construct()
    {
        $this->ci =& get_instance();
        $this->ci->load->helper( 'system' );
    }

    function commonViewCheck()
    {
        $trans_fr = partner();

        // 로그인한 사용자 정보. 
        $login_mem = $this->_login_member();

        // head 로 넘겨줄 데이터 //
        $data['head'] = array(
            'trans_fr'      => $trans_fr,
            'head_logo'     => logo_display($trans_fr),
            'head_info'     => $this->ci->common_m->getMetaData($this->ci->uri->uri_string()),
            'jtx_user_id'   => $this->_get_jtx_id($login_mem),
            'mem_total'     => $this->ci->common_m->getSysMemTypePerCount(),
            'login_mem'     => $login_mem
        );
        // head 로 넘겨줄 데이터 //

        // left 로 넘겨줄 데이터 //
        $data['left'] = array(
            'trans_fr'          => $trans_fr,
            'jtx_user_id'       => $jtx_user_id,
            'login_mem'         => $login_mem,
            'left_evaluation'   => $this->_get_evaluation(),
            'interview'         => get_interview()
        );
        // left 로 넘겨줄 데이터 //

        $view['head'] = $this->ci->load->view('include/head', $data['head']);
        $view['leftLogin'] = $this->ci->load->view('include/leftLogin', $data['left']);
        $view['leftMenu'] = $this->ci->load->view('include/leftMenu', $data['left']);
        $view['footer'] = $this->ci->load->view('include/footer');
    }

    function _get_jtx_id($mem)
    {
        if(isLogin()) {
            if(isMemberType($mem['mem_type'], 'usr_order')) {
                return $jtx_user_id = $mem['mem_id'];
            }
        }

        return '';
    }

    function _login_member()
    {
        return $login_mem = array(
            'mem_type'  => $this->ci->session->userdata('mem_type'),
            'mem_id'    => $this->ci->session->userdata('mem_id'),
            'mem_idx'   => $this->ci->session->userdata('mem_idx')
        );
    }

    function _get_evaluation()
    {
        $left_evaluation = $this->ci->common_m->getEvaluation();
        foreach($left_evaluation as $row) {
            $row->writeday = ret_unix_time_txt($row->writeday, 'hi');
            $row->trans_id = view_user_id($row->trans_id);
        }

        return $left_evaluation;
    }
}