php - 如何在 Laravel 中处理多个 Orwhere

标签 php sql laravel-5

我在 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_identidadnombresapellidos 如您所见,我有一个 dd($query) 来查看查询树,我注意到首先 where 使用 and 而不是 or。这是树:enter image description here

所以,我有下一个: 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/

相关文章:

sql - 将日期转换为工作日然后关联并求和

php - MySQL 查询从 PHP 代码返回 null,但在终端中工作正常

php - 使用 SQLite 迁移 Laravel

laravel - 为什么 Laravel 的 trans_choice() 总是显示单数情况?

javascript - 如何从 php 向 Angular $http 服务抛出异常

php - 当我从数据库加载法语文本时,数据表返回无效的 json 响应

php - Guzzle 6 : upload files with array data

php - 如何在php中使用数组向mysql数据库输入数据?

java - JPA查询相当于mysql查询

laravel - 使用 Laravel 5.2 的内置身份验证将旧的 md5 密码迁移到 bcrypt