Laravel -如何从嵌套关系中提取字段



我正在尝试从嵌套关系中取出字段。

我的类结构是:

User      hasMany       GroupUser
GroupUser belongsTo     Group
Group     belongsToMany Promotion

这样我就可以从用户

获取促销信息
$user->groupUsers()->with('group')->with('group.promotions')->get();
{
"id": 4,
....
"promotions": [
{
"id": 3,
"group_id": 11,
"user_id": 4,
...
"group": {
"id": 11,
...
"promotions": [
{
"id": 8,
"title": "Lavagem Mensal 1 unid.",
"const": "LAVAGEM_MENSAL1_UNID",
"pivot": {
"group_id": 11,
"promotion_id": 8
}
}
]
}
}
]
}

所以我需要的是得到Promotions.const的一个拨动列表。

尝试这样做,但它返回[null]

$user->groupUsers()->with('group')->with('group.promotions')->get()->pluck('group.promotions.const');

更新:现在我接近实现它。

$user->groupUsers()->with('group')->with('group.promotions')->get()->pluck('group.promotions.*.const');
"promotions": [
[
"BRF_LAVAGEM_MENSAL_1_UNID"
]
]

只需要平铺这个数组。

试试这个:

$user->groupUsers()
->with('group.promotions')
->get()
->pluck('group.promotions.*.const')
->collapse();

最新更新