请指导我,
如何让Laravel中的所有用户获得至少一个帖子。并且跳过没有发布任何帖子的人。
我正在尝试这个。但它正在吸引所有用户。
$users = User::with('post')->get();
答案 0 :(得分:4)
为Eloquent模型尝试has()
方法 - > https://laravel.com/docs/5.4/eloquent-relationships
$users = User::with('post')->has('post')->get();
您可以使用whereHas()
接收有效帖子的用户。记住它。 :)
$users = User::with('post')->whereHas('post', function ($query) {
$query->where('is_active', '=', true);
})->get();
答案 1 :(得分:1)
您可以使用:
User::with('post')->has('post')->get();
或whereHas
(来自laravel doc)
// Retrieve all posts with at least one comment containing words like foo%
$posts = Post::whereHas('comments', function ($query) {
$query->where('content', 'like', 'foo%');
})->get();
答案 2 :(得分:0)
试试这个:
$users = User::has('post')->get();