1. ホーム
  2. php

[解決済み】stdClassクラスのオブジェクトが文字列に変換されない。

2022-02-07 11:43:43

質問

現在、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();
        }
    }

この問題が何なのかよく分からないので、何か手助けがあれば助かります。

解決方法は?

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