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

Query a relationship with where - let result affect parent?

我查询关系:

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

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

如果产品没有发布,我也想不return用户。

例如,查询应该获取拥有已发布产品的所有用户。如果用户没有已发布的产品,请不要 return 他们。

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

所以,如果我理解正确的话,你想 return 只有拥有已发布产品的用户?

如果是这样,您正在寻找 whereHas() 函数,这允许您 return 基于关系参数的父模型的结果。

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