You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Codeigniter出现Attempt to Read Property on String错误如何解决

报错原因

  • 模型中调用row()方法,查询匹配数据后返回的是单个对象实例,不是可遍历的二维结果集。视图里对单个对象执行foreach遍历时,会默认遍历对象的属性值,遍历出来的单元是字符串/数字等基础类型值,此时尝试对基础类型值访问->jenis_produk属性就会触发对应报错。
  • 若查询无匹配数据,row()会返回null,未做判空直接访问属性也会抛出类似错误。

解决方案

场景1:该查询逻辑仅需返回单条数据

无需使用foreach遍历,直接访问对象属性即可,视图层代码参考:

// 先判空避免无数据时报错
if ($minimalis) {
    echo $minimalis->jenis_produk;
    // 其余属性同理直接访问
}

场景2:该查询逻辑需要返回多条数据遍历

修改模型代码,将row()替换为result(),返回可遍历的对象集合:

public function getMinimalis($id)
{
    return $this->db->get_where($this->_table, ["jenis_produk" => $id])->result();
}

修改后视图层的foreach遍历逻辑即可正常运行:

foreach ($minimalis as $item) {
    echo $item->jenis_produk;
    // 其余属性同理访问
}

内容的提问来源于stack exchange,提问作者William Sanders

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 15:54:06