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

如何在Filament PHP表格中展示数据库JSON列的关联名称

提取JSON关联字段中的name值展示方案

后端处理(以Laravel为例)

如果你的模型已经将JSON字段转为数组类型(比如通过$casts配置),可以直接在查询或模型访问时提取name字段:

  1. 模型内定义访问器:
    在对应模型中添加访问器,直接返回拼接好的名称字符串:

    public function getRelatedNamesAttribute()
    {
        // 假设你的JSON字段名为related_data
        return collect($this->related_data)->pluck('name')->implode(', ');
    }
    

    之后在表格中直接使用related_names作为列名即可展示所有关联名称的逗号分隔字符串。

  2. 查询时直接处理:
    如果只需要在特定查询中处理,可以在查询构造器里通过集合方法处理:

    $records = YourModel::all()->map(function ($item) {
        $item->related_names = collect($item->related_data)->pluck('name')->implode(', ');
        return $item;
    });
    

前端处理(以Vue+Element UI为例)

如果后端返回的是完整的JSON数组,可在表格列的格式化函数中提取name:

  1. 配置表格列的formatter:
    <el-table :data="tableData">
      <el-table-column
        label="关联名称"
        :formatter="formatRelatedNames"
      />
    </el-table>
    
  2. 实现格式化函数:
    methods: {
      formatRelatedNames(row) {
        // 假设后端返回的字段名为related_data
        return row.related_data.map(item => item.name).join(', ')
      }
    }
    

通用思路

不管用哪种方式,核心逻辑都是:

  • 遍历存储的关联数组
  • 提取每个元素中的name属性
  • 将多个name拼接成字符串(或按需求展示为列表)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 18:13:11