2011-10-04 5 views
1

저는 Codeigniter에 아직 익숙하지 않고 noob 문제가 있습니다. 제가 도움이 필요합니다.Codeigniter는 모델에서 컨트롤러로 결과 객체를 전달합니다

각 사용자의 자동 증가 ID 번호를 세션 데이터에 user_id로 설정하려고합니다. 예 :

컨트롤러 :

$username = $this->input->post('username'); 
$this->load->model('membership_model'); 
$user_id = $this->membership_model->getUser_id(); 

$data = array(
    'session_id' => $str = do_hash($str), 
    'user_id' => $user_id, 
    'username' => $username, 
    'is_logged_in' => true 
);   
$this->session->set_userdata($data); 
redirect('site/members_area'); 

모델 :

public function getUser_id() 
{ 

    $session_username = $this->session->userdata('username'); 

    $q = $this->db->get_where('membership', array('username' => $session_username), 1); 

    if($q->num_rows() > 0) { 
     foreach($q->result() as $row) { 
      $row->id; 
      $row->username; 
     } 
     return $data; 
    } 
} 

내 문제는 내가 $ 로우 -> ID를 전달하는 방법을 잘 모르겠습니다이다; 모델에서 컨트롤러로 user_id로 사용할 객체.

누군가가 조언을 해줄 수 있습니까? 아니면 잘못된 방식으로 접근합니까?

제공되는 도움에 감사드립니다.

+0

이유 CI에 대한 기존의 보안 모델을 사용하지를? 거기에 많습니다. (나는 이것이 당신의 질문에 대답하지 않는다는 것을 알고 있습니다.) – Jakub

답변

1

그것의 매우 간단합니다, 그냥 ID를 반환 :

public function getUser_id() 
{ 

    $session_username = $this->session->userdata('username'); 

    $q = $this->db->get_where('membership', array('username' => $session_username), 1); 

    if($q->num_rows() > 0) { 
     $row = $q->row(); 
     return $row->id; 
    } 
    return false; // else return false 
} 
관련 문제