Laravel在使用时被忽略了

时间:2017-09-11 10:30:00

标签: php laravel eloquent query-builder

我有一个查询,我想查看特定类型的 Alert 的所有 User (关系)项。

我使用以下查询

$users = User::with('alerts')->whereHas('alerts', function($q) use ($type) {
    $q->where('type', $type);
})->get();

问题是它忽略了我subquery的位置并返回了所有类型的提醒,而不是我传入whereHas的类型。

谢谢!

1 个答案:

答案 0 :(得分:0)

解决方案

whereHas限制用户的结果,而不是警报的结果

我必须在&{39; subquery'上使用with。言。

$users = User::whereHas('email_alerts')->with(['email_alerts' => function($q) use ($email_type) {
    $q->where('email_type', $email_type);
}, 'company'])->get();