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

Laravel Blade中如何解析数据库JSON格式related_id为列表

Laravel Blade渲染related_id为列表的解决方案

数据库表结构

related_members表

IDrelated_id
1["4","5"]
2["1","3"]

问题与当前代码

我需要在Laravel Blade视图中将related_id字段的内容渲染为单独的列表项,但当前使用的代码:

@foreach(\App\Models\Member::all()->where('related_id', $member->related_id) as $users )
    <li>{{ $users['related_id']}}</li>
@endforeach

只会输出整个JSON字符串(比如["4","5"]),而我想要的是:

  • 4
  • 5

解决方案

你的核心问题是related_id存储的是JSON格式字符串,且当前查询逻辑错误——你不需要查询整个Member集合,只需要解析当前$member的related_id字段即可。

方法1:直接在Blade中解析JSON

先把JSON字符串转成PHP数组,再循环输出:

@php
    // 将JSON字符串解析为关联数组
    $relatedIds = json_decode($member->related_id, true);
@endphp

<ul>
    @foreach($relatedIds as $id)
        <li>{{ $id }}</li>
    @endforeach
</ul>

方法2:模型中添加类型转换(更规范)

在Member模型里设置属性类型转换,让框架自动把JSON字符串转成数组:

// app/Models/Member.php
class Member extends Model
{
    protected $casts = [
        'related_id' => 'array',
    ];
}

设置后,Blade中可以直接用数组循环,代码更简洁:

<ul>
    @foreach($member->related_id as $id)
        <li>{{ $id }}</li>
    @endforeach
</ul>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 15:18:28