43 votes

L'objet de la classe stdClass n'a pas pu être converti en chaîne

J'ai un problème avec PHP en ce moment, j'obtiens cette erreur,

Object of class stdClass could not be converted to string l'erreur se produit lorsque j'exécute cette partie de code sur mon site,

 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);
}

La ligne dans laquelle l'erreur se produit est celle-ci,

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

Et cette ligne appelle cette fonction,

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

Je ne sais pas vraiment quel est ce problème, donc toute aide serait la bienvenue.

47voto

Pekka 웃 Points 249607

Très probablement, la fonction userdata() renvoie un objet, pas une chaîne. Regardez dans la documentation (ou var_dump la valeur de retour) pour savoir quelle valeur vous devez utiliser.

9voto

roshan Points 91

J'utilise cosignator et j'ai l'erreur :

L'objet de la classe stdClass n'a pas pu être converti en chaîne.

pour ce post j'obtiens mon résultat

J'utilise dans ma section modèle

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

et à partir de ce post j'utilise

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

et j'ai résolu mon problème

5voto

Nishanth ॐ Points 540

En général pour se débarrasser de

L'objet de la classe stdClass n'a pas pu être converti en chaîne.

essayez d'utiliser echo '<pre>'; print_r($sql_query); pour ma requête SQL a obtenu le résultat comme

 stdClass Object
(
    [num_rows] => 1
    [row] => Array
        (
            [option_id] => 2
            [type] => select
            [sort_order] => 0
        )

    [rows] => Array
        (
            [0] => Array
                (
                    [option_id] => 2
                    [type] => select
                    [sort_order] => 0
                )

        )

)

Pour y accéder il existe différentes méthodes Ex : num_rows, row, rows

 echo $query2->row['option_id'];

Donnera le résultat comme 2

2voto

Roopchand Points 686

essaye ça

 return $query->result_array();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X