采摘预加载 Laravel 5.2
Pluck Eager Loading Laravel 5.2
在使用 Laravel 5.2 查询时,我将如何提取预先加载的关系?
$users = User::with(['posts' => function($query){
$query->pluck('id');
}])->get();
我希望响应只是 用户帖子 ID 的数字,如下所示:
[{user: Blabel, posts: [24,25,26]},
{user: Kraker, posts: [75,76,77]}]
我现在得到的是帖子 table:
中的所有字段
[{user:Blabel,
posts:[{id:24, name: "blabla", text: "bleble"},
{id:25, name: "blablabla", text: "blebleble"},
{id:26, name: "blablablo", text: "blebleblo"},
...
]},
{user:Kraker,
posts:[{id:75, name: "krakra", text: "krekre"},
{id:76, name: "krakrakra", text: "krekrekre"},
{id:77, name: "krokro", text: "krekrekro"},
...
]}
我可以在 Eager Loading Constraint 中使用 pluck 吗?
同一个问题:,但我没有找到成功的答案。
你必须在查询后提取ids:
$users = User::with(['posts' => function($query){
$query->select('id', 'user_id'); // assuming it's a HasMany relationship
}])->get();
$users = $users->toArray();
foreach($users as $i => $user) {
$users[$i]['posts'] = collect($user['posts'])->pluck('id');
}
在使用 Laravel 5.2 查询时,我将如何提取预先加载的关系?
$users = User::with(['posts' => function($query){
$query->pluck('id');
}])->get();
我希望响应只是 用户帖子 ID 的数字,如下所示:
[{user: Blabel, posts: [24,25,26]},
{user: Kraker, posts: [75,76,77]}]
我现在得到的是帖子 table:
中的所有字段[{user:Blabel,
posts:[{id:24, name: "blabla", text: "bleble"},
{id:25, name: "blablabla", text: "blebleble"},
{id:26, name: "blablablo", text: "blebleblo"},
...
]},
{user:Kraker,
posts:[{id:75, name: "krakra", text: "krekre"},
{id:76, name: "krakrakra", text: "krekrekre"},
{id:77, name: "krokro", text: "krekrekro"},
...
]}
我可以在 Eager Loading Constraint 中使用 pluck 吗?
同一个问题:
你必须在查询后提取ids:
$users = User::with(['posts' => function($query){
$query->select('id', 'user_id'); // assuming it's a HasMany relationship
}])->get();
$users = $users->toArray();
foreach($users as $i => $user) {
$users[$i]['posts'] = collect($user['posts'])->pluck('id');
}