如何修复此错误消息:尝试获取非对象行214的属性

时间:2017-02-27 06:51:38

标签: codeigniter

  

遇到PHP错误

     

严重性:注意

     

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

     

文件名:views / index.php

     

行号:214

     

回溯:

     

文件:C:\ Program Files   (86)\的EasyPHP-DevServer-14.1VC9 \数据\ localweb \ masterlinkci2 \应用\站点\视图\的index.php   行:214函数:_error_handler

     

文件:C:\ Program Files   (86)\的EasyPHP-DevServer-14.1VC9 \数据\ localweb \ masterlinkci2 \应用\站点\控制器\ Cspages.php   行:32功能:视图

     

文件:C:\ Program Files   (86)\的EasyPHP-DevServer-14.1VC9 \数据\ localweb \ masterlinkci2 \的index.php   行:315功能:require_once

视图/ index.php的

第214行:

 <?php foreach($pic as $pic_item): ?> 
     <img src="<?php echo base_url('assets1/images/slider/'.$pic->pic_item
        );?>">  

控制器/ Cspages.php

public function index()
{
  $this->load->helper('url');

  $this->load->model('gallery_model');

  // slider
  $pic_unique_id = 18;

  $data['pic'] = $this->gallery_model->get_picture($pic_unique_id);

  $this->load->view('index', $data);
}

模型/ Gallery_model.php

class Gallery_model extends CI_Model {
  public function __construct()
  {
    parent::__construct();
    $this->load->database();
  }

  public function get_picture($pic_unique_id)
  {
    $query = $this->db->get_where('galleries_pictures', array('picture_unique_id' => $pic_unique_id));
    return $query->result();
  }
}

如何修复此错误消息,任何线索? (第214行)

3 个答案:

答案 0 :(得分:0)

在模型中返回$query->row()而不是$query->result()

 public function get_picture($pic_unique_id)
  {
    $query = $this->db->get_where('galleries_pictures', array('picture_unique_id' => $pic_unique_id));
    return $query->row();
  }
  

row()方法返回第一个匹配的行。如果您使用result(),则需要在视图中使用foreach循环。

有关详情,请参阅此处Codeigniter Results Formats

答案 1 :(得分:0)

而不是这个$ this-&gt; load-&gt; database();

"Address.FlatNo": {
    require_from_group: [1, ".building-group"],
    rangelength: [1, 50],
    onlyspacecheck:true
},
"Address.BuildingNo": {
    require_from_group: [1, ".building-group"],
    rangelength: [1, 50],
    onlyspacecheck:true
},
"Address.BuildingName": {
    require_from_group: [1, ".building-group"],
    rangelength: [1, 50],
    onlyspacecheck:true
},

您缺少的表名

$autoload['libraries'] = array('database');

或尝试

public function get_picture($pic_unique_id) {
  $query = $this->db->get_where('tablename', array('picture_unique_id' => $pic_unique_id));
 return $query->result();
}

答案 2 :(得分:0)

错误使用

   while ($row = mysqli_fetch_assoc($query1)) {
    //print_r($row);
    $book=$row['book'];echo "<br/>";
    echo $book;
}

$ pic是数组

尝试

 <?php foreach($pic as $pic_item): ?> 
     <img src="<?php echo base_url('assets1/images/slider/'.$pic->pic_item
  );?>">