2011-10-04 103 views
1

我對Codeigniter仍然很陌生,並且有noob問題我需要一些幫助。Codeigniter將db結果對象從模型傳遞到控制器

我想爲每個用戶設置自動遞增的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 
} 
相關問題