📜  laravel 查询中的多个逻辑条件 - PHP (1)

📅  最后修改于: 2023-12-03 15:32:35.439000             🧑  作者: Mango

Laravel 查询中的多个逻辑条件

在 Laravel 中,查询数据是非常常见的操作。有时候需要对多个属性进行筛选,这时候就需要用到多个逻辑条件。

基本查询

我们首先看一下使用单个条件的查询:

$users = DB::table('users')
                ->where('name', 'John')
                ->get();

这里的 where 方法接收两个参数,第一个是要查询的属性名,第二个是该属性的值。这样就可以查询出所有 name 属性为 John 的用户。

多条件查询

我们可以通过链式调用添加多个条件:

$users = DB::table('users')
                ->where('name', 'John')
                ->where('age', '>', 18)
                ->get();

上述代码中,我们使用两个 where 条件,查询出 name 属性为 Johnage 属性大于 18 的用户。

有时候我们需要使用 or 来查询,此时可以使用 orWhere

$users = DB::table('users')
                ->where('name', 'John')
                ->orWhere('age', '>', 18)
                ->get();

上述代码中,我们通过 orWhere 方法添加了一个 or 条件,查询出所有 name 属性为 John 或者 age 属性大于 18 的用户。

多条件嵌套

当有多个条件需要嵌套时,我们可以使用闭包:

$users = DB::table('users')
                ->where('name', '=', 'John')
                ->where(function ($query) {
                    $query->where('age', '>', 18)
                          ->orWhere('votes', '>', 100);
                })
                ->get();

上述代码中,我们使用了一个闭包来创建条件嵌套。查询出所有 name 属性为 John 且 (age 大于 18 或者 votes 大于 100) 的用户。

以上就是在 Laravel 查询中使用多个逻辑条件的方法。

参考资料