Laravel从ID数组获取集合

问题描述:

我有一组用户ID,我尝试获取其集合。我一直在使用下面的foreach循环,但是我意识到对于每个循环它都会覆盖以前的数据。Laravel从ID数组获取集合

$users = DB::table('user_tags')->where('tag_name', $tag)->whereNotNull('user_id')->lists('user_id'); 
$users = array_unique($users); 

foreach ($users as $key => $value) 
{ 
    $users = User::where('id', $value)->get(); 
} 

这怎么能返回一个集合与所有用户在该原始数组?

谢谢!

有一个简单的方法..

$ids = DB::table('user_tags')->where('tag_name', $tag)->whereNotNull('user_id')->lists('user_id'); 
$users = User::whereIn('id', $ids)->get(); 
+0

Q - 为什么'whereIn'与只是'where'? –

+1

where = id |在哪里(ID数组) –

是多对多的使用者和标签之间的关系?如果是这样,请尝试以下查询:

User::whereHas('tags', function($query) use ($tag) { 
    $query->where('tag', $tag); 
})->pluck('id');