gpt4 book ai didi

php - laravel 循环中的多个 where 子句

转载 作者:可可西里 更新时间:2023-11-01 06:41:07 25 4
gpt4 key购买 nike

我几乎希望查询选择 25 岁且高度在 150-170cm 或 190-200cm 之间的所有用户记录。

我在下面写下了这个查询。然而,问题是它不断增加 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();

最佳答案

Jeemusu并且 OP 声明,您需要使用 advance wheres .但是,如果您想将变量传递给闭包函数,则需要使用“use”方法:

$heightarray = array(array(150,170),array(190,200));

DB::table('users')
->where('name', '=', 'John')
->orWhere(function($query) use ($heightarray){
//...
})
->get();

关于php - laravel 循环中的多个 where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19485893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com