$item_ids = Cookie::get('name');
if(!is_array($item_ids)){
$items = Item::find($item_ids)->get();
}
$items = DB::table('items')
->whereIn('id', $item_ids )
->get();
dd($items);
$item_ids in dd($item_ids)
array:5 [▼
0 => "2"
1 => "2"
2 => "2"
3 => "4"
4 => "6"
]
正如你在$ item_ids中看到的那样,2重复了3次而我只得到了一次。如何重复3次。是否有任何查询生成器可以做到这一点?
答案 0 :(得分:1)
“查询”构建器使用id = 2
方法在数据库中查找whereIn
。数据库中只有一个id为2的项目,因此它只返回一条记录。
但是,您可以再次遍历所有ID并从数据库结果中提取这些ID。为每个id执行此操作,以便为同一ID获取多个结果。
这样的事情:
$item_ids = Cookie::get('name');
if(!is_array($item_ids)){
$items = Item::find($item_ids)->get();
}else{
$items = [];
$dbItems = Item::whereIn('id',$item_ids)->get();
foreach($item_ids as $id){
$items[] = $dbItems->first(function ($key, $value) use ($id) {
return $value->id == $id;
});
}
}
dd($items);