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

Laravel 5.4如何从集合中获取关联的solicitud数组?

当然可以获取到solicitud数组!

你的查询已经通过with()预加载了solicitud及其嵌套关联,所以返回的$requests集合里的每个Request_conversation模型实例都已经包含了对应的solicitud数据。你可以通过以下几种方式轻松提取solicitud集合或数组:

1. 使用pluck快速提取(推荐)

pluck方法可以直接从集合的每个模型中取出指定关联属性,非常简洁:

// 获取包含所有solicitud模型的集合
$solicitudesCollection = $requests->pluck('solicitud');

// 如果需要转成纯数组,加上toArray()
$solicitudesArray = $requests->pluck('solicitud')->toArray();

2. 用map自定义处理

如果你需要对每个solicitud做额外处理再提取,可以用map方法:

$solicitudes = $requests->map(function ($conversation) {
    // 这里可以添加自定义逻辑,比如只返回solicitud的部分字段
    return $conversation->solicitud;
});

// 转数组同样用toArray()
$solicitudesArray = $solicitudes->toArray();

3. 过滤空值(可选)

虽然你用了whereHas('solicitud')确保每个Request_conversation都有对应的solicitud,但如果怕有意外情况,可以过滤掉空值:

$solicitudesArray = $requests->pluck('solicitud')->filter()->toArray();

小提醒

你的查询里用了groupBy('solicitud'),在Eloquent中直接按关联模型分组可能会有数据库层面的限制(比如MySQL严格模式下的分组规则),更稳妥的写法是按关联的外键分组,比如groupBy('solicitud_id'),这样能避免潜在的语法错误哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:18:19