【问题标题】:How to write Laravel eloquent query where (condition) and (condition2 or condition 3)如何编写 Laravel 雄辩的查询 where (condition) and (condition2 or condition 3)
【发布时间】:2021-07-04 06:38:43
【问题描述】:

假设我们有这样的 SQL

select * from cards
where (deck_id=${deck_id})
and (added_by =${user_id} or is_available = 1)

并且想用 Laravel 雄辩地写

我尝试使用以下查询,但结果与预期不同。

Card::where(['deck_id'=>$deck_id,'added_by'=>$user_id])
    ->orWhere(['deck_id'=>$deck_id,'is_available'=>1])
    ->get();

Card::where(['deck_id'=>$deck_id])
        ->Where(['added_by'=>$user_id])
        ->orWhere('is_available',1)
        ->get();

【问题讨论】:

    标签: php sql laravel eloquent


    【解决方案1】:

    好像你想要这样的东西:

    Card::where('deck_id', $deck_id)
       ->where(function ($query) use($user_id){
             $query->where('added_by', $user_id)
             ->orWhere('is_available', 1);
        })
       ->get();
    

    【讨论】:

      猜你喜欢
      • 2016-07-05
      • 1970-01-01
      • 2014-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-30
      • 2021-09-29
      • 2021-12-27
      相关资源
      最近更新 更多