使用 ORM 进行查询,并在里面一起使用 (AND) 和 (OR)



我想用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()

最新更新