获取在laravel中至少有一个帖子的所有用户

时间:2017-05-09 12:16:54

标签: laravel laravel-5

请指导我,

如何让Laravel中的所有用户获得至少一个帖子。并且跳过没有发布任何帖子的人。

我正在尝试这个。但它正在吸引所有用户。

$users = User::with('post')->get(); 

3 个答案:

答案 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();