2011-10-04 6 views
1

Я до сих пор совершенно новичок в Codeigniter и имею проблему с noob. Мне нужна помощь.Codeigniter pass 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; 
    } 
} 

Моя проблема в том, что я не знаю, как передать $ row-> идентификатор; объект от модели к контроллеру, который будет использоваться как user_id.

Может кто-нибудь, пожалуйста, дайте мне какой-нибудь совет или я подхожу к этому неправильно?

Заранее благодарю вас за любую помощь.

+0

почему бы не использовать уже существующую модель безопасности для CI? Их там много. (Я знаю, что это не касается вашего вопроса). – Jakub

ответ

1

Его довольно просто, просто возвращает идентификатор:

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 
} 
Смежные вопросы