Eloquent 关系计数约束

Eloquent Relationship Count Constraint

我正在尝试编写一个 eloquent 查询,其工作方式如下:

Tables:
Order
Support Ticket (one to many with the order)

查询: 过滤支持工单,仅在支持工单少于 45 天时显示订单。

我觉得这是对 Laravel 中 whereHas() 方法的改编,但我不确定如何对这样的关系实施过滤器或日期搜索。

谢谢!

$orders = Order::whereDoesntHave('support_ticket')
    ->orWhereHas('support_ticket', function($query) {
        $query->where('created_at', '>=', now()->subDays(45));
    })->get();

其中“support_ticket”是订单模型中关系的名称。 通过这种方式,您可以检索没有支持票或至少有 1 天且少于 45 天的订单。

因为你在 Laravel 5 可能 now() 没有定义,那么你可以使用:

\Illuminate\Support\Carbon::now()