错误:获取非对象的属性

时间:2012-12-20 02:28:10

标签: php codeigniter

  

可能重复:
  Call to a member function on a non-object

我收到此错误:尝试获取非对象的属性[来自模型] 当我尝试通过输入一个字符串来检索数据库中的id,在这种情况下,该字符串是“某事物”

这是我的模特

   function getRoleId($role_name='')
         {

            $conditions = array('role_name'=> $role_name);
            $this->db->where($conditions);
            $this->db->select('id');
            $query = $this->db->get('roles');       
            $row   = $query->row();
            return $row->id;
         }

控制器($ radioRole这里是=某些东西)但是当它到达模型时它变成了别的东西。

$radioRole  = 'something';
$insertData['role_id']            = $this->user_model->getRoleId($radioRole);

更新

print_r($radioRole);
$insertData['role_id']            = $this->user_model->getRoleId($radioRole);

显示$ radioRole,在这种情况下是'某事'

但是当它到达user_model并且当我执行print_r时它会显示其他内容,'买方',它甚至不会在控制器上显示print_r。感觉它被写了:O但我不知道:O

的print_r($查询)

  CI_DB_mysql_result Object ( [conn_id] => Resource id #37 [result_id] => Resource id #64 [result_array] => Array ( ) [result_object] => Array ( ) [current_row] => 0 [num_rows] => 0 [row_data] => )

1 个答案:

答案 0 :(得分:0)

您的where错误:

$conditions = array('role_name'=> $role_name);
$this->db->where($conditions);

应该是

$conditions = array('role_name', $role_name);
$this->db->where($conditions);

<击>

编辑:

如评论中所述,如果条件直接在where内,则必须使用逗号:

$this->db->where('role_name',$role_name);