【问题标题】:Trying to get property of non-object in view试图在视图中获取非对象的属性
【发布时间】:2015-03-20 13:41:24
【问题描述】:

我有一个以 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

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

【问题讨论】:

  • 我看到太多这样的问题了。花时间学习如何interpret errors and fix your code
  • 尝试做 return $this->item = $query->result();
  • 换一种说法,$item 不是对象。您需要回溯以找出原因。
  • 好吧,别介意我的回答。没想到这是 Codeigniter 特有的。我会删除它。

标签: php codeigniter


【解决方案1】:

由于您期望一个单一的结果,您的 get_item 函数应该

return $query->row();

【讨论】:

    【解决方案2】:

    在你的 get_item 函数中替换这个:

    结果()

    此函数将查询结果作为对象数组或 失败时为空数组。

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

    像这样:

    行()

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

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

    Documentation

    【讨论】:

      【解决方案3】:

      您需要调用库数据库($this-&gt;load-&gt;database();)和模型($this-&gt;load-&gt;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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-08-09
        • 1970-01-01
        • 1970-01-01
        • 2014-12-09
        相关资源
        最近更新 更多