50

現在、PHP に問題があり、このエラーが発生しています。

Object of class stdClass could not be converted to stringサイトでコードのこの部分を実行するとエラーが発生し、

function myaccount() {
    $data['user_data'] = $this->auth->get_userdata($this->uri->segment(3));
    //var_dump($data['user_data']);
    $this->load->model('users_model');
    $data['user_info'] = $this->users_model->get_user_and_roadmaps_by_id($this->uri->segment(3));
    $this->template->build('users/my_account', $data);
}

エラーが発生している行はこれです。

$data['user_data'] = $this->auth->get_userdata($this->uri->segment(3));

そして、この行はこの関数を呼び出しています。

   function get_userdata() {

        $CI =& get_instance();

        if(!$this->logged_in()) {
            return false;
        } else {
            $query = $CI->db->get_where('users', array('user_id' => $CI->session->userdata('user_id')));
            return $query->row();
        }
    }

私は今、この問題が何であるかを本当に理解していないので、どんな助けも素晴らしいでしょう.

4

7 に答える 7

49

ほとんどの場合、userdata()関数は文字列ではなくオブジェクトを返しています。ドキュメントを調べて (または戻り値を var_dump して)、使用する必要がある値を見つけてください。

于 2010-08-31T09:09:41.950 に答える
9

私は codeignator を使用していますが、エラーが発生しました:

クラス stdClass のオブジェクトを文字列に変換できませんでした。

この投稿では、結果を取得します

モデルセクションで使用します

$query = $this->db->get('user', 10);
        return $query->result();

そして、この投稿から私は使用します

$query = $this->db->get('user', 10);
        return $query->row();

そして私は私の問題を解決しました

于 2012-06-08T09:26:34.047 に答える
2

別のコメントで、 get_userdata() 関数が stdClass オブジェクトを返すことを期待していないと述べましたか? その場合は、その関数の次の行に注意する必要があります。

return $query->row();

ここで、CodeIgniter データベース オブジェクト「$query」には、stdClass を返す row() メソッドが呼び出されています。または、同じデータを配列形式で返す row_array() を実行することもできます。

とにかく、これが問題の根本原因ではないことを強く疑っています。もう少し詳しく教えていただけますか?いくつかのことをいじって、それがどうなるか教えてください. 私たちはあなたのコードをいじることができないので、何が起こっているのか正確に言うのは難しい.

于 2010-08-31T18:19:24.580 に答える
1

try this

return $query->result_array();
于 2013-01-25T08:48:48.107 に答える