雄辩的Laravel在哪里,或者和

时间:2016-03-18 13:23:39

标签: sql laravel eloquent

我想像这样发出Sql请求:

  

获取((Age > 10Weight > 50)或Name = Jack)和Actif = 1

我的Eloquent请求如下:

$user = DB::table('users')
    ->where('Age', '>=', 10)
    ->where('Weight', '>=', 50)
    ->orWhere('Name', 'Jack')
    ->where('Actif', 1)
    ->get();

但实际上它会返回结果Jack,尽管此列Actif is set to 0

1 个答案:

答案 0 :(得分:5)

如果我们看看哪里部分的嵌套,那么它将是这样的:

$sites = DB::table('users')
    ->where(function($q) {                       // (
      $q->where(function($q){                    //   (
             $q->where('Age', '>=', 10)          //     Age > 10
               ->where('Weight', '>=', 50);      //     AND Weight > 50
        })                                       //   )
        ->orWhere('Name', 'Jack');               //   OR Name = Jack
    })                                           // )
    ->where('Actif', 1)                          // AND Actif = 1
    ->get();