我有 3 个表:posts
、votes
和 users
。我想排除当前用户已经投票的帖子(Auth::user()->id)。我应该如何实现这一目标?我尝试使用以下代码:
$user_id = Auth::user()->id;
$posti = Post::with('user')
->whereDoesntHave("votes")
->whereBetween('posts.created_at', array(Carbon::now()->subHours(48), Carbon::now()))
->orderBy('posts.created_at', 'DESC')
->orderByVotes()
->take(20)
->get();
最佳答案
您可以使用投票关系和回调函数检查帖子是否没有登录用户的投票。要实现此目的,请使用以下代码:
$userId = Auth::user()->id;
Post::with('votes')
->whereDoesntHave('votes', function ($query) use ($userId) {
$query->where('user_id', $userId);
})
->get();
关于mysql - 如何在 Laravel 5.4 中根据用户 ID 排除某些行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43477744/