2012-11-15 98 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 –