我现在遇到了一个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();
}
}
我真的不知道这个问题是什么,所以任何帮助都是伟大的。
8条答案
按热度按时间gv8xihay1#
userdata()
函数返回的很可能是一个对象,而不是字符串。请查阅文档(或var_dump返回值),找出需要使用的值。pxq42qpu2#
我使用了codeignator,但出现了错误:
类stdClass的对象无法转换为字符串。
对于这篇文章,我得到了我结果
我在模型部分使用
从这篇文章我用
我解决了我的问题
pu3pd22g3#
在一般摆脱
类stdClass的对象无法转换为字符串。
我尝试使用
echo '<pre>'; print_r($sql_query);
进行SQL查询,结果为访问有不同的方法,例如:行数,行,行
将给予结果2
f8rj6qna4#
就像其他人说的,echo命令不能自己打印出对象。因此,你可以考虑使用print_r来显示对象的内容。
因此,在您的案例中:
x3naxklr5#
你在另一条评论中提到,你不希望get_userdata()函数返回一个stdClass对象。如果是这样的话,你应该注意函数中的这一行:
这里,CodeIgniter数据库对象“$query”调用了row()方法,该方法返回一个stdClass。或者,您可以运行row_array(),它以数组形式返回相同的数据。
无论如何,我强烈怀疑这不是问题的根本原因。你能给予我们一些更详细的信息吗?试着做一些事情,让我们知道它的进展。我们不能试着做你的代码,所以很难说到底发生了什么。
jljoyd4f6#
试试这个
k4aesqcs7#
我想找的是一种方法
所以我用了
$data = $this->db->get('table_name')->result_array();
然后获取我的数据,就像操作数组对象一样。
$data[0]['field_name']
不需要担心类型转换或任何事情,只要直奔主题。
所以对我很有效。
wkftcu5l8#
如果你有这个问题,这意味着你的数组是在一个类型,你可以把它转换成字符串类型。你的对象不是在字符串类型。所以你可以转换它如下。$data= json_decode(json_encode($data),true);
如果你想要更多的参考资料,你可以去here。希望对你有帮助。