codeigniter - 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="" data-glyphicon="false"
data-rating-class="rating-fa">
</span>
如果我使用 foreach 循环,我的代码有什么问题,那么我可以解决我的问题。但在这段代码中,我不想使用 foreach 循环。我想访问数据库的字段。但我收到错误。
解决方案
单件退货return $query->row()
。result()
适合许多人。此外,您应该num_rows()
在尝试访问结果对象/数组并正确处理 0 行之前进行检查,因为这是一种很好的做法。
在这种情况下:
if ($query->num_rows() > 0) {
return $query->row();
}
return false;
推荐阅读
- android - View.setVisibility() 在 Android 源代码级别与 NPE 崩溃
- bash - 在 bash 脚本中从 CSV 文件读取数据时出现问题
- snowflake-cloud-data-platform - 如何在 Snowflake DB 中找到挂起的任务?
- spring-mvc - 将二进制数据发送到 Spring MVC 失败,并显示“内容类型 'application/octet-stream;charset=UTF-8' not supported”
- c# - 如何遍历字典
使用 c# - mysql - 将 SQLITE3 日期查询集成到 MYSQL 中的问题
- excel - 多个条目下拉列表:换行符而不是逗号
- go - golangci-lint - 想要“真正”忽略 go 文件,而不是简单地分析它并抑制警告 - 我目前的忽略方法会占用内存并且速度很慢
- c++ - 包括 JSON 头文件
- r - 如何计算列中值的频率?