Laravel唯一returns只有一条记录

Laravel Unique returns only one record

我有工作 table 和操作员 table。 一个操作员可以在作业上有多个作业记录table,而一个作业只能有一个操作员。

现在想获取所有操作员最近一次作业的记录,不重复

这是我用的

$availableOperators = DB::table('operator')
                ->join('job','operator.OperatorId', '=', 'job.OperatorId')
                ->where('operator.available',1)
                ->orderBy('job.JobId','desc')
                ->get()
                ->unique('job.OperatorId');

没有唯一查询,我能够看到所有满足条件的记录,但在包含它时,我只得到它找到的第一条记录和 none 其他

请指教我做错了什么

显然,unique 总是只给出一条记录,我改用 groupBy 解决了它。

$availableOperators = DB::table('operator')
            ->join('job','operator.OperatorId', '=', 'job.OperatorId')
            ->where('operator.available',1)
            ->orderBy('job.JobId','desc')
            ->groupBy('job.OperatorId')
            ->get();