查询与 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();
我查询关系:
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();