我有一个类似于这样的集合:
$a = Model::with(['sub' => function($q) {
$q->select('id', 'name')
}])->get();
这将返回以下集合:
{
0: {
id: 0001,
name: "item 1",
type: "type a"
'sub' [
{
'id': 10001,
'name': "sub Item 1"
},
{
'id': 10002,
'name': "sub Item 2"
}
]
},
1: {
id: 0002,
name: "item 2",
type: "type a"
'sub' [
{
'id': 11001,
'name': "sub Item 4"
},
{
'id': 11002,
'name': "sub Item 5"
}
]
}
我想要做的是通过它们的 id 来键入父项,并且只返回关系。例如
{
0001: {
'sub' [
{
'id': 10001,
'name': "sub Item 1"
},
{
'id': 10002,
'name': "sub Item 2"
}
]
},
0002: {
'sub' [
{
'id': 11001,
'name': "sub Item 4"
},
{
'id': 11002,
'name': "sub Item 5"
}
]
}
我似乎无法让它发挥作用。我尝试了很多变化,包括:
$a = Model::with(['sub' => function($q) {
$q->select('id', 'name')
}])->pluck('sub', 'id');
这不起作用,因为“Pluck”显然是在寻找父模型的名称为“sub”的属性,它不会退出。有没有办法做到这一点?
谢谢