2

可能重复:
调用非对象上的成员函数

我收到此错误:尝试获取非对象的属性 [来自模型] 当我尝试通过输入字符串从数据库中检索 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 时,它会显示其他内容,“buyer”,它甚至不会显示在控制器上完成的 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] => )
4

1 回答 1

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);
于 2012-12-20T12:53:24.770 回答