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

如何从Laravel SprayerResource集合返回的响应中提取username字段?

后端PHP侧获取方法

  1. 直接通过Sprayer模型实例获取
    你已经通过findOrFail拿到了Sprayer模型实例,直接调用关联的User属性即可取值:
$sprayer = Sprayer::findOrFail($request->sprayer_id);
$username = $sprayer->User->username;
  1. 在SprayerResource资源类中获取
    如果是需要在资源类内部处理这个字段,直接在toArray方法中通过$this调用关联属性即可:
// SprayerResource.php 的 toArray 方法中
public function toArray($request)
{
    return [
        'id' => $this->id,
        'username' => $this->User->username,
        // 其他自定义字段
    ];
}

前端接收响应后获取方法

注意你当前返回的是集合资源,即使只有单条数据,外层data也是数组格式,取值需要先取数组第一个元素:

// 假设接口返回的响应体存在变量res中
const username = res.data[0].User.username;

优化提示:你当前的接口代码存在冗余,查询单条数据不需要用collection方法包裹,修改成如下写法后返回的data直接是对象,不需要加[0]取值:

$sprayer = Sprayer::findOrFail($request->sprayer_id);
// 单条数据直接返回资源实例即可,不需要用collection
return new SprayerResource($sprayer);

优化后前端取值代码简化为:

const username = res.data.User.username;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 11:24:00