如何在全局范围内查询关系


How to query relation in laravel scope

我想稍微修改一下以下范围:

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

返回相关赎回计数小于数量列的所有模型。赎回表有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'));
}