我查询关系:
return User::with(array('product' => function($q){
$q->where('published', 1);
}))->get();
如果未发布产品,则该关系为空。
如果产品未发布,我也不想退回用户。
例如,查询应该包含已发布产品的所有用户。如果用户没有已发布的产品,请不要退回。
这可能吗?或者我只需要对视图进行一些检查,如果产品为空,则不输出用户?
答案 0 :(得分:1)
因此,如果我理解正确,您只想返回拥有已发布产品的用户吗?
如果是这样,您正在寻找whereHas()
函数,这允许您根据关系的参数返回父模型的结果。
return User::whereHas('product', function($query)
{
$query->where('published', true);
})->get();