首页 > 解决方案 > Codeigniter 错误尝试获取非对象的属性

问题描述

我收到“试图获取非对象的属性”的错误,我的控制器代码是

public function productDetails($pro_name,$product_id) {
$data['prodRating'] = $this->ProductsModel -> get_one($product_id);
  $this->load->view('home',$data);  
}

型号代码

function get_one($pro_id){
$query= $this->db->select('ratingid, pro_item_id, pro_total_points, pro_total_rates, proid ')
          ->from('tblproducts')
          ->where('proid',$pro_id)
          ->join('tblprorating','tblprorating.pro_item_id = tblproducts.proid','left')
          ->get();
 return $query->result();                
 }

查看代码

 <span dir="ltr" class="inline">

            <input id="input-<?=$prodRating->proid ?>" name="rating"
                <?php if ($prodRating->$pro_total_rates > 0 or $prodRating->pro_total_points > 0) { ?>
                    value="<?php echo $prodRating->pro_total_points / $prodRating->pro_total_rates ?>"
                <?php } else { ?>
                    value="0"
                <?php } ?>
                <?php if ($this->session->userdata('userid') == false) { ?>
                    data-disabled="false"
                <?php } else { ?>
                    data-disabled="<?= $rated ?>"
                <?php } ?>
                   class="rating "
                   min="0" max="5" step="0.5" data-size="xs"
                   accept="" data-symbol="&#xf005;" data-glyphicon="false"
                   data-rating-class="rating-fa">
        </span>

如果我使用 foreach 循环,我的代码有什么问题,那么我可以解决我的问题。但在这段代码中,我不想使用 foreach 循环。我想访问数据库的字段。但我收到错误。

标签: codeigniter

解决方案


单件退货return $query->row()result()适合许多人。此外,您应该num_rows()在尝试访问结果对象/数组并正确处理 0 行之前进行检查,因为这是一种很好的做法。

在这种情况下:

if ($query->num_rows() > 0) {
    return $query->row();
}
return false;

推荐阅读