我需要laravel中的查询帮助
我的自定义查询:(返回正确的结果)
Select * FROM events WHERE status = 0 AND (type="public" or type = "private")
如何在 Laravel。
中编写此查询Event::where('status' , 0)->where("type" , "private")->orWhere('type' , "public")->get();
但它正在返回状态不为0的所有公共事件。
我正在使用Laravel 5.4
答案 0 :(得分:9)
将关闭传递到where()
:
Event::where('status' , 0)
->where(function($q) {
$q->where('type', 'private')
->orWhere('type', 'public');
})
->get();
答案 1 :(得分:1)
使用此
$event = Event::where('status' , 0);
$event = $event->where("type" , "private")->orWhere('type' , "public")->get();
或者
Event::where('status' , 0)
->where(function($result) {
$result->where("type" , "private")
->orWhere('type' , "public");
})
->get();
答案 2 :(得分:1)
在您的情况下,您只需重写查询...
select * FROM `events` WHERE `status` = 0 AND `type` IN ("public", "private");
和Eloquent:
$events = Event::where('status', 0)
->whereIn('type', ['public', 'private'])
->get();
如果您想要分组OR / AND,请使用闭包:
$events = Event::where('status', 0)
->where(function($query) {
$query->where('type', 'public')
->orWhere('type', 'private');
})->get();
答案 3 :(得分:0)
试试这个。它对我有用。
$rand_word=Session::get('rand_word');
$questions =DB::table('questions')
->where('word_id',$rand_word)
->where('lesson_id',$lesson_id)
->whereIn('type', ['sel_voice', 'listening'])
->get();