在我的项目中,hire可以有许多hire_days。每个hire_day都有一个startend时间戳。
我想创建一个查询,它将只返回所有关联hire_day.end时间都在过去的雇员。
到目前为止,我的问题是:

$hires = Hires::join('hires_days', function ($join) {
            $join->on('hire_id', '=', 'hires.id');
        })
        ->select('hires.id', 'hires.account_id', 'hires.job_number', 'hires.site_id', \DB::raw('MAX(end) AS end'))
        ->orderBy('hires_days.end', 'asc')
        ->groupBy('hires.id')
        ->paginate(10);

如果他们的hires中至少有一个在过去,这将返回hire_days,而忽略了还有一些关联的hire_days仍在未来的事实。

最佳答案

我认为您需要添加到您的查询中:
->having('end', '<', time())

关于php - Laravel`Item`有很多,仅当所有都是过去时返回,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36913165/

10-09 16:03