Laravel Collection按多个连续的唯一字段筛选

时间:2016-02-16 22:10:52

标签: laravel collections

我有一个模型下载,它有两个属性。这些属性是'id','user_id','file_id'。

每当用户下载文件时,都会创建下载记录。

我想获取具有唯一file_id和唯一user_id的所有下载。

这是如何完成的。

2 个答案:

答案 0 :(得分:1)

您可以使用groupBy方法。

$downloads = DB::table('downloads')
            ->groupBy('file_id')
            ->groupBy('user_id')
            ->get();

您可以使用distinct方法。

$downloads = DB::table('downloads')->distinct()->get();

答案 1 :(得分:0)

集合可能来自某种关系,之后需要进行过滤。以下是在laravel 5.7中经过测试的工作解决方案,很可能在以后的版本中也是如此:

{ $replaceWith: "$data3" }
         with 
{ $replaceRoot: {newRoot: "$data3" }}

这里是有关此的文章:http://laravel.at.jeffsbox.eu/laravel-5-eloquent-collection-methods-unique