查询与where的关系 - 让结果影响父级?

时间:2015-07-30 10:42:38

标签: laravel laravel-5 eloquent laravel-5.1

我查询关系:

return User::with(array('product' => function($q){
        $q->where('published', 1);
    }))->get();

如果未发布产品,则该关系为空。

如果产品未发布,我也不想退回用户。

例如,查询应该包含已发布产品的所有用户。如果用户没有已发布的产品,请不要退回。

这可能吗?或者我只需要对视图进行一些检查,如果产品为空,则不输出用户?

1 个答案:

答案 0 :(得分:1)

因此,如果我理解正确,您只想返回拥有已发布产品的用户吗?

如果是这样,您正在寻找whereHas()函数,这允许您根据关系的参数返回父模型的结果。

return User::whereHas('product', function($query)
{
    $query->where('published', true);
})->get();