2012-11-15 80 views
0

我的應用程序中有一個名爲admin的表,我使用下面的代碼根據提交的電子郵件和密碼選擇記錄。對於first_name,last_name和admin_role,我得到「未定義的屬性stdclass」錯誤。我檢查了三倍,這些是我的表中列的名稱。我究竟做錯了什麼?我自動加載數據庫和會話庫。在模型中設置會話數據可以嗎?CodeIgniter未定義的屬性錯誤

型號代碼:

public function can_sign_in() { 
    $this->db->select('admin_id', 'first_name', 'last_name', 'admin_role'); 
    $this->db->where('admin_email', $this->input->post('admin_email')); 
    $this->db->where('admin_password', md5($this->input->post('admin_password'))); 
    $query = $this->db->get('admin'); 

    if($query->num_rows() == 1) { 
     foreach ($query->result() as $row) { 
      $admin[] = array(
       'admin_id' => $row->admin_id, 
       'first_name' => $row->first_name, 
       'last_name' => $row->last_name, 
       'admin_role' => $row->admin_role 
      ); 
      $this->session->set_userdata($admin); 
     } 
     return true; 
    } else { 
     return false; 
    } 
} 

回答

4
$this->db->select('admin_id', 'first_name', 'last_name', 'admin_role'); 

select只需要2個參數。帶有可選字段的字符串,以及布爾值,表示是否應該用反引號將字符串轉義。

您傳遞4個參數。你只想傳遞一個逗號分隔字段的字符串:

$this->db->select('admin_id, first_name, last_name, admin_role'); 
+0

非常感謝。不能相信我沒有從文檔中注意到這一點。猜猜我需要更多的咖啡。 :) –

+0

@RichCoy:當我終於注意到這一點時,我正在查看你的代碼幾分鐘。 :-P –