Возможный дубликат:
Вызов функции-члена на не-объекте
Я получаю эту ошибку: пытаюсь получить свойство не-объекта [из модели] Когда я пытаюсь получить идентификатор из базы данных, введя строку, которая в этом случае является «чем-то»,
Это моя модель
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] => )
Твое, 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);