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

如何用PHP/Laravel遍历多层JSON?Laravel Blade场景求助

问题分析与解决方案

我来帮你梳理下问题所在~你的JSON结构里exercises是数组类型,但你直接尝试访问$al->exercise->description——这里不仅拼写少了末尾的s,更关键的是数组不能直接通过->访问单个元素的属性,必须嵌套一层循环来遍历这个数组。

修正后的Blade代码示例

@foreach($exercisePlan as $al)
    @if(isset($al->exercises) && is_array($al->exercises))
        @foreach($al->exercises as $exercise)
            <li>{{ $exercise->description }}</li>
        @endforeach
    @endif
@endforeach

额外注意事项

如果你的exercises字段是从数据库中以JSON字符串形式存储的(而非已经解析好的对象/数组),还需要先把它转成可访问的格式:

  • 方法一:在Laravel模型中配置自动转换,一劳永逸:
// 对应的数据模型文件,比如ExercisePlan.php
protected $casts = [
    'exercises' => 'array', // 也可以选'object',根据你需要的类型来定
];

配置后从数据库取数据时,exercises会自动被转换成数组或对象,直接用上面的Blade代码就能正常访问。

  • 方法二:临时需求的话,可在Blade中手动解析:
@foreach($exercisePlan as $al)
    @php
        $exercises = json_decode($al->exercises);
    @endphp
    @if(isset($exercises) && is_array($exercises))
        @foreach($exercises as $exercise)
            <li>{{ $exercise->description }}</li>
        @endforeach
    @endif
@endforeach

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:51:43