首页 文章

PHP返回对象回显值

提问于
浏览
1

我目前正在使用codeigniter ona PHP项目,我正在使用的库之一返回数据库结果的对象,如下所示,

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

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

  • 0

    你走在正确的轨道上 . 一些东西 .

    你在这一行中错过了一个结束 .

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

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

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

  • 1

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

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

    注意:如果使用对象,则类变量将转换为数组元素 .

    祝好运!

  • 1

    对于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);
    

相关问题