在雄辩的行动中

时间:2017-03-29 12:25:40

标签: php laravel orm eloquent

我有两个数组

temp[]
time[]

现在例如,如果我的数组中的数据类似于此

    temp   time 
[0]  80     45
[1]  70     50
[2]  85     65
[3]  90     30 

我想根据这两个数组参数查询数据 喜欢(从MyTable中选择*,其中(温度= 80和时间= 45))下一个(从MyTable中选择*(温度= 70,时间= 50))等等

我正在做这样的事情

 $mix=MyTable::whereIN('temperature', $temp)
         ->whereIN('time', $time)->where('category',$cat)
         ->get();

但它输出的输出是这两个参数的组合。不完全是从数组0开始......

我希望我能正确解释我的问题。

我试过了..

    $result=Ergebnisse::where('name_id', $nam)->where('geometrie_id', $geo)->get();
    foreach ($result as $key => $res) {

$mix=Ergebnisse::where('temperatur', $res->temperatur)
         ->where('zeit', $res->zeit)->groupBy('katogorie_id')
         ->get();

}

当我dd($ mix)时,它只显示一个结果。但根据我的数据库,它应该显示多个

1 个答案:

答案 0 :(得分:4)

whereIn()无效。做这样的事情:

$data = MyTable::where('category', $cat)
    ->where(function($q) use($array) {               
        foreach ($array as $item) {
             $q->orWhere(function($q) use($item) {
                 $q->where('temperature', $item['temp'])
                   ->where('time', $item['time']);
            }
        }
    })->get();