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

如何在Laravel Collections中通过点符号获取嵌套字段值

解决方案

Laravel 原生提供了点分隔嵌套路径的取值能力,不需要自行实现路径解析逻辑,可直接使用以下两种方案:

方案1:使用data_get()全局辅助函数(推荐)

该函数适配数组、对象、Laravel Collection 等多种数据类型,直接传入数据源和点分隔路径即可完成取值,还支持配置默认值避免属性不存在时报错。

你只需要修改table.blade.php中单元格取值的代码即可,修改后完整代码如下:

@foreach ($data as $row)
    <tr>
        @foreach ($columns as $col)
            <td>{{ data_get($row, $col, '-') }}</td>
        @endforeach
    </tr>
@endforeach

以上代码中第三个参数'-'为默认值,当指定路径的属性不存在时会自动返回该值,你可以根据需求调整默认值或者省略该参数。

方案2:使用Arr::get()静态方法

效果和data_get()完全一致,属于同逻辑的门面调用方式,代码如下:

{{ Illuminate\Support\Arr::get($row, $col, '-') }}

如果你已经在Blade模板中引入了Arr门面,可以直接简写为{{ Arr::get($row, $col, '-') }}。

两种方案都完全兼容你现有的$columns配置,不需要调整列的定义写法,phone.home这类点分隔路径可以直接正常读取到嵌套属性值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 16:54:04