Laravel 5 Eloquent where with multiple or in 从句
Laravel 5 Eloquent where with multiple or in Clauses
我是 Laravel 的新手,我尝试使用多个 where 和 or 子句从 table 中获取结果。
Cases::select()
->where('accepting_id', '=', '1')
->where('status', '=', 'active')
->orWhere("status", '=', 'closed')
->orWhere("status", '=', 'canceled')
->orderBy('id', 'DESC')
->get();
我使用多个 orWhere
得到的数据不正确
而不是使用 multi orWhere()
使用 whereIn()
Cases::select(`cols`)
->where('accepting_id', '=', '1')
->whereIn('status', ['active', 'closed', 'canceled'])
->orderBy('id', 'DESC')
->get();
此外,如果您想对一些查询进行分组
Cases::select(`cols`)
->where('accepting_id', '=', '1')
->where(function ($q) {
$q->where(`condition1`)
->orWhere(`condition1`);
})
->orderBy('id', 'DESC')
->get();
您需要将 status
where 子句添加到 where 闭包中:
Cases::select()
->where('accepting_id', '=', '1')
->where(function($query) {
$query->where('status', '=', 'active')
->orWhere("status", '=', 'closed')
->orWhere("status", '=', 'canceled');
})
->orderBy('id', 'DESC')
->get();
$user = Cases::select(`cols`)
->where('accepting_id', '=', '1')
->whereIn('status', ['active', 'closed', 'canceled'])
->orderBy('id', 'DESC')
->get();
dd($user);
试试这个
我是 Laravel 的新手,我尝试使用多个 where 和 or 子句从 table 中获取结果。
Cases::select()
->where('accepting_id', '=', '1')
->where('status', '=', 'active')
->orWhere("status", '=', 'closed')
->orWhere("status", '=', 'canceled')
->orderBy('id', 'DESC')
->get();
我使用多个 orWhere
而不是使用 multi orWhere()
使用 whereIn()
Cases::select(`cols`)
->where('accepting_id', '=', '1')
->whereIn('status', ['active', 'closed', 'canceled'])
->orderBy('id', 'DESC')
->get();
此外,如果您想对一些查询进行分组
Cases::select(`cols`)
->where('accepting_id', '=', '1')
->where(function ($q) {
$q->where(`condition1`)
->orWhere(`condition1`);
})
->orderBy('id', 'DESC')
->get();
您需要将 status
where 子句添加到 where 闭包中:
Cases::select()
->where('accepting_id', '=', '1')
->where(function($query) {
$query->where('status', '=', 'active')
->orWhere("status", '=', 'closed')
->orWhere("status", '=', 'canceled');
})
->orderBy('id', 'DESC')
->get();
$user = Cases::select(`cols`)
->where('accepting_id', '=', '1')
->whereIn('status', ['active', 'closed', 'canceled'])
->orderBy('id', 'DESC')
->get();
dd($user);
试试这个