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($ query)

  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 に答える