我想用ORM进行查询,并在里面一起使用(AND(和(OR( 我的代码是:
$users = AppUser::where('type',1)->orWhere('type',2)->orWhere('type',3)->where('name',$name)->where('family',$family)->get();
那是错误的
我的代码应该加入
$users = AppUser::where('type',1)->orWhere('type',2)->orWhere('type',3)->get();
跟
$users = AppUser::where('name',$name)->where('family',$family)->get()
如何编写真正的查询?
如果情况是相同的字段,那么您需要使用whereIn
正如@Tharaka Dilshan 所提到的。
如果情况比这更复杂,您可能需要使用分组查询:
$users = AppUser::where(function ($query) {
$query->where('type', 1)->orWhere('type', 2)->orWhere('type', 3);
})
->where('name', $name)
->where('family', $family)
->get();
有关参数分组的更多详细信息。
似乎您正在寻找的是whereIn()
函数。
whereIn()
函数将单列值与数据array
进行比较。
$users = AppUser::where([
['name',$name],
['family', $family]
])
->whereIn('type', [1,2,3])
->get()