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

Laravel中如何在foreach嵌套循环遍历数据库JSON数据

Laravel嵌套遍历JSON字段问题解决

问题根源

你存储的JSON存在重复键问题:JSON对象不允许出现相同的key,解析后只会保留最后一个"details"值,这直接导致你遍历不到所有内容。另外,Laravel默认不会自动把JSON字段转成可遍历的数组/集合,也会影响循环效果。

解决步骤

1. 修复数据库中的JSON结构

把重复的details键改成数组形式,正确的JSON应该是:

{"details": ["Up to 5 Groups / Month", "Up to 30 CSV File Importing / Month", "Up to 5 SMTP Config", "Up to 5 Email Template Can Make and Edit", "Up to 30 Writer Call / Month", "24x7 Support"]}

如果是批量修改,可以用数据库更新语句处理,确保所有旧数据都转成这种数组结构。

2. 在模型中配置字段转换

打开你的TABLE_1对应的数据模型类,添加$casts属性,让Laravel自动把FSLS字段解析为数组:

protected $casts = [
    'FSLS' => 'array',
];

3. 修改视图中的循环代码

现在$lists->FSLS是包含details数组的关联数组,直接遍历details即可:

@foreach ($TABLE_1 as $lists)
Name: {{ $lists->name }}

@foreach($lists->FSLS['details'] as $detail)
  - {{ $detail }}
@endforeach

@endforeach

补充说明

如果暂时无法修改数据库的JSON结构(不推荐),可以在取出数据时手动处理,但这种方式不稳定,因为重复键的解析结果依赖于JSON解析器,建议优先修复JSON结构。

内容的提问来源于stack exchange,提问作者Md Sharif Uzzaman Rubel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 17:44:57