Laravel查询((或和或)或)和

时间:2016-10-13 15:58:55

标签: laravel eloquent

所以我有点陷入这个我需要做的查询中。

让我试着解释一下我的问题。 我在模型中的方法中收到以下内容: $ a,$ b和$ c。

但$ b和$ c可能为空。

所以我的查询需要是这样的 从from_user_id中选择*,其中((to_user_id = $ a或from_user_id = $ a)和(to_user_id = $ b或to_user_id = $ b)或(from_user_id = $ a和find = 0))和id = $ c

1 个答案:

答案 0 :(得分:3)

使用嵌套where()orWhere()

Model::where(function($q) {
    $q->where('from_user_id', $a)
      ->orWhere('to_user_id', $a)
})->where(function($q) {
    $q->where('from_user_id', $b)
      ->orWhere('to_user_id', $b)
})->orWhere(function($q) {
    $q->where('from_user_id', $a)
      ->orWhere('to_user_id', $0)
})->where('id', $c)
->get();