Laravel从ID数组中获取集合

时间:2016-07-15 21:26:36

标签: laravel laravel-5.2

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

$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();  
}

如何返回该原始数组中所有用户的集合?

谢谢!

2 个答案:

答案 0 :(得分:9)

这是一种更简单的方法..

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

答案 1 :(得分:0)

用户和标签之间的关系是多少?如果是,请尝试以下查询:

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