我正在使用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();
上述情况将导致此类查询:
从用户中选择*
其中(字段=值,另一个字段=另一个值和…)
或者(另一个字段=另一个值和…)