type recorrer leer cannot array php codeigniter object stdclass

php - leer - stdclass object recorrer



El objeto de la clase stdClass no se pudo convertir en cadena (5)

Estoy teniendo un problema con PHP en este momento, estoy recibiendo este error,

Object of class stdClass could not be converted to string El error se produce cuando ejecuto esta parte del código en mi sitio.

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 línea en la que está ocurriendo el error es ésta,

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

Y esta línea está llamando a esta función,

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

Realmente no sé cuál es este problema, por lo que cualquier ayuda sería genial.


¿Mencionó en otro comentario que no espera que su función get_userdata () devuelva un objeto stdClass? Si ese es el caso, deberías ocuparte de esta línea en esa función:

return $query->row();

Aquí, el objeto de base de datos CodeIgniter "$ query" tiene su método row () llamado que devuelve un stdClass. Alternativamente, puede ejecutar row_array () que devuelve los mismos datos en forma de matriz.

De todos modos, sospecho que esta no es la causa raíz del problema. ¿Nos puede dar algunos detalles más, tal vez? Juega un poco con algunas cosas y déjanos saber cómo va. No podemos jugar con su código, por lo que es difícil decir exactamente qué está pasando.


En general para deshacerse de

El objeto de la clase stdClass no se pudo convertir en cadena.

intenta usar el echo ''<pre>''; print_r($sql_query); echo ''<pre>''; print_r($sql_query); para mi consulta SQL obtuvo el resultado como

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

Para acceder hay diferentes métodos, por ejemplo: num_rows, row, row.

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

Dará el resultado como 2.


Lo más probable es que la función userdata() esté devolviendo un objeto, no una cadena. Busque en la documentación (o var_dump el valor de retorno) para averiguar qué valor necesita usar.


Uso codeignator y me sale el error:

El objeto de la clase stdClass no se pudo convertir en cadena.

Para este post obtengo mi resultado.

Yo uso en mi sección modelo

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

y de este post uso

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

y resolví mi problema


prueba esto

return $query->result_array();