#php #sql #laravel #eloquent
Вопрос:
Допустим, у нас есть такой 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();
Ответ №1:
Похоже, ты хочешь чего-то подобного :
Card::where('deck_id', $deck_id)
->where(function ($query) use($user_id){
$query->where('added_by', $user_id)
->orWhere('is_available', 1);
})
->get();