首页 > 解决方案 > 如何在满足计数条件的情况下查询具有多对多关系的表

问题描述

有3种型号:

目标是找到在 24 小时内发送不超过 5 个广播的组。

就像是:

Group::whereDoesntHave("Broadcasts", function($q) {
    $q->where("Count sent broadcasts in 24", "<=", 5);
})->get();

这怎么可能?

标签: laraveleloquent

解决方案


您可以使用 Eloquent 的 whereHas 方法,它接收关系、回调、运算符和计数。

尝试这个:

$groups = Group::whereHas('broadcasts', function ($query) {
    $query->whereBetween('created_at', [now()->subDay(), today()]);
}, '<=', 5)->get();

推荐阅读