【问题标题】:Laravel Get Collection From Array of IDsLaravel 从 ID 数组中获取集合
【发布时间】:2016-11-19 04:53:39
【问题描述】:

我有一组要收集的用户 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();  
}

这如何返回一个包含原始数组中所有用户的集合?

谢谢!

【问题讨论】:

    标签: laravel laravel-5.2


    【解决方案1】:

    有一个更简单的方法..

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

    【讨论】:

    • 问 - 为什么是 whereIn 而不是 where
    • 其中 = id |在哪里(ID 数组)
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-12-09
      • 1970-01-01
      • 2016-12-11
      • 2021-12-06
      • 2013-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多