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

Laravel遍历first()查询的模型记录时foreach输出异常如何解决

问题原因

first()方法返回的是Eloquent模型实例,而非纯业务字段数组。直接对模型实例做foreach遍历,会默认遍历模型本身所有公开属性,所以会输出incrementing、exists这类内置属性。而你直接return模型时,Laravel会自动调用模型的toArray()方法,仅返回业务字段集合,所以和直接遍历的结果不一致。

正确遍历方法
  • 方法1:转成完整业务数组后遍历(最常用,和return模型的输出完全一致)
    调用toArray()方法,会包含数据库字段、类型转换后的字段、模型追加的访问器属性:
$psr = property_search_request::where('unique_search_id', 'fz62a1zh0a3320zg3712')->first();
// 非空判断避免查询为空时报错
if ($psr) {
    foreach ($psr->toArray() as $key => $value) {
        print_r($key);
    }
}
  • 方法2:仅遍历原始数据库字段
    如果你不需要访问器、类型转换后的内容,只想要数据库里存储的原始字段值,可以调用getAttributes()方法:
if ($psr) {
    foreach ($psr->getAttributes() as $key => $value) {
        print_r($key);
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 02:39:00