Laravel:orWhereHas()禁用where()?

时间:2017-10-12 21:25:28

标签: php laravel-5

我想让所有在表addresses或表institutes中都有相关行的用户。另外,我希望modeIN应该等于MT。我认为以下查询会这样做,但它不起作用:

$users = User::whereHas('addresses')
          ->orWhereHas('institutes')
          ->where('modeIN', '=', 'MT')
          ->get()
          ->pluck('modeIN');

dd($users);

仍然列出了modeIN不等于MT的用户。为什么会发生这种情况?我该如何解决?

enter image description here

1 个答案:

答案 0 :(得分:2)

我现在无法检查这个问题,但这样做会有什么问题吗?

$users = User::where('modeIN', 'MT')
    ->where(function ($query) {
        $query->has('addresses')
              ->orHas('institutes');
        })
    ->pluck('modeIN');