PHP返回对象回显值

时间:2011-05-04 12:07:15

标签: php codeigniter

我目前在PHP项目上使用codeigniter,而我正在使用的库之一返回数据库结果的对象,看起来像这样,

    stdClass Object
(
    [user_id] => 2
    [firstname] => John
    [surname] => Doe
    [email] => jonh.doe@emailaddress.info
    [password] => 9d210a03bed920971fefab01b8f84a27
    [postcode] => W1 5ST
    [date_registered] => 2021-04-11 10:56:47
    [last_logged_in] => 2011-05-04 11:56:03
    [user_type_id] => 2
)

然后我尝试使用以下代码回显值,我通过执行以下操作将用户发送到我的视图,

$data['users'] = $this->users_model->get_by($this->session->userdata('user_id');
$this->load->view('view', $data);

然后在我看来,我正在做以下事情,

echo $users->firstname;

但是我在页面顶部出现以下错误

  
    

遇到PHP错误

  
     

严重程度:4096

     

消息:类stdClass的对象   无法转换为字符串

     

文件名:libraries / Parser.php

     

行号:63

我该如何解决这个问题?不改变理想情况下返回数据库结果的方式。

4 个答案:

答案 0 :(得分:1)

您无法直接回显对象。在回显之前创建方法__toString()或serialize

答案 1 :(得分:1)

你走在正确的轨道上。一些事情。

你错过了这一行的结束。

$data['users'] = $this->users_model->get_by($this->session->userdata('user_id'));

此外,很难知道用户模型返回的内容。你能提供$ this-> users_model-> get_by()的代码吗?这就是你的问题所在。

确保您的数据库查询按预期返回对象。您可能需要添加 - > row()。

答案 2 :(得分:0)

也许是因为您在视图中发送了一个名为“users”的变量..但在您的视图中,您调用变量$ user而不是$ users

如果不是...... doc on views说:

  

注意:如果使用对象,则为该类   变量将变为数组   元件。

祝你好运!

答案 3 :(得分:0)

对于Codeigniter,您需要调用$ users-> result(),$ users-> result_array(),$ users-> row()或$ users-> row_array()来访问DB结果对象数据

http://codeigniter.com/user_guide/database/results.html

假设返回一行:

$data['users'] = $this->users_model->get_by($this->session->userdata('user_id');
$data['users'] = $data['users']->row();
$this->load->view('view', $data);