繁体   English   中英

Laravel`Item` 有很多,只有当所有都在过去时才返回

[英]Laravel `Item` has many, return only if ALL are in the past

在我的项目中,一个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);

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

我认为您需要的是添加到您的查询中:

->having('end', '<', time())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM