几乎我希望查询选择 25 岁且介于 150-170 厘米或 190-200 厘米之间的用户的所有记录。
我在下面写了这个查询。然而问题是它不断吸引 25 岁或 190-200 厘米的人,而不是 25 岁的 150-170 或 25 岁的 190-200 厘米高的人。我怎样才能解决这个问题?谢谢
$heightarray=array(array(150,170),array(190,200));
$user->where('age',25);
for($i=0;$i<count($heightarray);i++){
if($i==0){
$user->whereBetween('height',$heightarray[$i])
}else{
$user->orWhereBetween('height',$heightarray[$i])
}
}
$user->get();
编辑:我尝试了高级 wheres (http://laravel.com/docs/queries#advanced-wheres),但它对我不起作用,因为我无法将 $heightarray 参数传递到闭包中。
来自 laravel 文档
DB::table('users')
->where('name', '=', 'John')
->orWhere(function($query)
{
$query->where('votes', '>', 100)
->where('title', '<>', 'Admin');
})
->get();