我在 Laravel 5 中工作并使用 Orwhere 子句,我要引用的代码是这样的:
$estudiantes= Usuario::
where('rol', '=', 'ESTUDIANTE')
->whereHas('perfil', function($query) use ($data){
if($data!="")
$query->Where('doc_identidad', '=' ,$data)
->orWhere('nombres','like','%'.$data.'%')
->orWhere('apellidos','like','%'.$data.'%');
dd($query);
})->get();
所以,我想用 rol ESTUDIANTE 过滤每个 Usuario,效果非常好,然后我想过滤其中哪些有 doc_identidad或 nombres 或 apellidos 如您所见,我有一个 dd($query)
来查看查询树,我注意到首先 where 使用 and 而不是 or。这是树:
所以,我有下一个: where1 和 where2 或 where3 或 where4
我想要: where1 和(where2 或 where3 或 where4) 那么,我该怎么做呢?谢谢!
最佳答案
where1(a=1) and (where2(b=1) or where3(c=1) or where4(d=1))
Model::where(function ($query) {
$query->where('a', '=', 1);
})->where(function ($query) {
$query->where('b', '=', 1)
->orWhere('c', '=', 1)
->orWhere('d', '=', 1);
});
关于php - 如何在 Laravel 中处理多个 Orwhere,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33500292/