У меня проблема с 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 возвращаемое значение), чтобы узнать, какое значение вам нужно использовать.
Я использую codeignator, и я получил ошибку:
Объект класса stdClass нельзя преобразовать в строку.
для этого сообщения я получаю свой результат
Я использую в своем разделе модели
$query = $this->db->get('user', 10); return $query->result();
и с этой должности я использую
$query = $this->db->get('user', 10); return $query->row();
и я решил свою проблему
Вы упомянули в другом комментарии, что вы не ожидаете, что ваша функция get_userdata () вернет объект stdClass? Если это так, вы должны учесть эту строку в этой функции:
return $query->row();
Здесь объект базы данных CodeIgniter «$ query» имеет свой метод row (), который возвращает stdClass. Кроме того, вы можете запустить row_array (), который возвращает те же данные в форме массива.
Во всяком случае, я сильно подозреваю, что это не основная причина проблемы. Можете ли вы дать нам более подробную информацию, возможно? Поиграйте с некоторыми вещами и сообщите нам, как это происходит. Мы не можем играть с вашим кодом, поэтому трудно точно сказать, что происходит.
попробуй это
return $query->result_array();