$user_id = auth::user()->id;
$user_friends = User::find($user_id)->friends;
$user_friends_id = $user_friends->pluck('id');
$posts = Post::where('user_id', $user_friends_id)->get();
return view('dashboard')->with('posts', $posts);

到目前为止,我已经在 $user_friends_id 中获得了用户的 friend ID,然后将它们与帖子上的用户 ID 进行了匹配,但它只获取了第一个 friend 的帖子,而不是其余的。如何更改它以获取所有 friend 的帖子,而不仅仅是第一个 friend ?

最佳答案

您不需要使用 find() 执行额外的查询,然后获取所有 friend 对象只是为了获取他们的 ID。这是一个巨大的开销。只需这样做:

Post::whereIn('user_id', auth()->user()->friends()->pluck('id'))->get()

关于php - 在laravel 5.4 中,我怎样才能只获得用户 friend 的帖子?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49029157/

10-16 20:51