我想像这样发出Sql请求:
获取((
Age > 10
和Weight > 50
)或Name = Jack
)和Actif = 1
我的Eloquent请求如下:
$user = DB::table('users')
->where('Age', '>=', 10)
->where('Weight', '>=', 50)
->orWhere('Name', 'Jack')
->where('Actif', 1)
->get();
但实际上它会返回结果Jack
,尽管此列Actif is set to 0
。
答案 0 :(得分:5)
如果我们看看哪里部分的嵌套,那么它将是这样的:
$sites = DB::table('users')
->where(function($q) { // (
$q->where(function($q){ // (
$q->where('Age', '>=', 10) // Age > 10
->where('Weight', '>=', 50); // AND Weight > 50
}) // )
->orWhere('Name', 'Jack'); // OR Name = Jack
}) // )
->where('Actif', 1) // AND Actif = 1
->get();