试图在视图中获取非对象的属性

时间:2015-03-20 13:41:25

标签: php codeigniter

我的链接以index.php / welcome / item / 1

结尾

我的控制器welcome.php包含功能项

public function item($id)
{
    $data   = array();
    $this->load->helper('url');
    $data['title'] = "item";
    $this->load->view('header', $data);
    $data['item']=$this->port_model->get_item($id);
    $this->load->view('item',$data);
    $this->load->view('footer');
}

和我的模型使用get_item函数

public function get_item($id)
    {
        $this->db->select('*');
        $this->db->from('portfolio');
        $this->db->where('id', $id);
        $query = $this->db->get();
        return $item = $query->result();
    }

在我的项目视图中,我希望从数据库中回显信息。为什么现在不这样做

<h1>item</h1>
<?php echo $item->naam; ?>

我在页面上出错: 遇到PHP错误

严重性:注意

消息:尝试获取非对象的属性

文件名:views / item.php

行号:2

页面加载正常,没问题。 我做错了什么?

3 个答案:

答案 0 :(得分:1)

由于您期望获得一个结果,因此您的get_item函数应该

return $query->row();

答案 1 :(得分:0)

替换您的get_item函数:

  

<强>结果()

     

此函数将查询结果作为对象数组返回,或者   失败的空数组。

return $item = $query->result();

像这样:

  

<强>行()

     

此函数返回单个结果行。如果您的查询超过   一行,它只返回第一行。结果返回为   对象

return $item = $query->row();

Documentation

答案 2 :(得分:0)

您需要调用库数据库($this->load->database();)和模型($this->load->model('port_model');):

结果:

<code>public function item($id)
{
    $data   = array();
    $this->load->helper('url');
    $data['title'] = "item";
    $this->load->view('header', $data);
    $this->load->database();
    $this->load->model('port_model');
    $data['item']=$this->port_model->get_item($id);
    $this->load->view('item',$data);
    $this->load->view('footer');
}</code>