如何在 laravel 范围内查询关系

How to query relation in laravel scope

我想稍微修改以下范围:

function scopeNotRunOut($query)
{
    return $query->has('redemptions', '<', DB::raw('quantity'));
}

此return所有相关兑换次数少于数量列的型号。赎回 table 有一个 user_id 列,那么我该如何调整它以便它只计算 user_id 列为给定值的赎回?

最后自己解决了,答案如下:

function scopeCustomerMaxUsesValid($query, $user_id)
{
    return $query->whereHas('redemptions', function($query) use ($user_id) {
        $query->where('user_id', '=', $user_id);
    }, '<', DB::raw('quantity'));
}