如何使用Laravel Eloquent创建多个Where子句查询?

我正在使用Laravel雄辩的查询生成器,我有一个查询,其中需要一个关于多个条件的where子句。它能工作,但不优雅

例如:

$results=User::where('this','=',1)
-&燃气轮机;其中('that','=',1)
-&燃气轮机;式中('this_too','=',1)
-&燃气轮机;式中('that_too','=',1)
-&燃气轮机;式中('this_as_well','=',1)
-&燃气轮机;式中('that_as_well','=',1)
-&燃气轮机;式中('this_one_too','=',1)
-&燃气轮机;式中('that_one_too','=',1)
-&燃气轮机;式中('this_one_as_well','=',1)
-&燃气轮机;式中('that_one_as_well','=',1)
-&燃气轮机;get();

有没有更好的方法,或者我应该坚持这种方法

在Laravel 5.3中(在7.x中仍然如此),您可以使用更细粒度的数组:

$query->在哪里([
['column_1','=','value_1'],
['column_2','<'gt;','value_2'],
[列、运算符、值],
...
])

就我个人而言,我还没有找到多个where调用的用例,但事实是您可以使用它

自2014年6月起,您可以将一个数组传递到其中

只要您想要所有的在哪里使用操作符,就可以这样对它们进行分组:

$matchthis=['field'=>'value','other_field'=>'other_value',…];
//如果您需要另一组Where作为备选方案:
$orThose=[“另一个字段”=>“另一个值”,…];

然后:

$results=User::where($matchthis)>get();
//与另一组
$results=User::where($matchthis)
-&燃气轮机;orWhere($orThose)
-&燃气轮机;get();

上述情况将导致此类查询:

从用户中选择*
其中(字段=值,另一个字段=另一个值和…)
或者(另一个字段=另一个值和…)

发表评论