繁体   English   中英

如何编写 Laravel eloquent 查询 where (condition) and (condition2 or condition 3)

[英]How to write Laravel eloquent query where (condition) and (condition2 or condition 3)

假设我们有这样的 SQL

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

并想写在 Laravel eloquent

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

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

好像你想要这样的东西:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM