【问题标题】:Eloquent Laravel Where And Or And雄辩的 Laravel Where And Or And
【发布时间】:2016-07-05 06:39:29
【问题描述】:

我想发出这样的 Sql 请求:

获取 ((Age > 10 AND Weight > 50) OR Name = Jack) AND 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

【问题讨论】:

    标签: sql laravel eloquent


    【解决方案1】:

    如果我们看一下 where 部分的嵌套,它会是这样的:

    $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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-30
      • 2014-08-23
      • 1970-01-01
      • 1970-01-01
      • 2021-07-04
      • 1970-01-01
      • 2020-06-27
      • 2014-06-28
      相关资源
      最近更新 更多