Laravel查询范围,当保费编号相同时,获取具有最大生效日期的记录

时间:2019-04-22 07:30:19

标签: php laravel eloquent laravel-5.7

如果我有两条具有相同溢价ID的记录,我只想获得一条具有最大有效日期的记录。 以下是示例记录

ar

我尝试使用

public function scopeEffectiveDate($query)
    {
        $current_date = Carbon::now()->toDateTimeString();
        return $query->where(max('effective_date'), '<=', $current_date);
    } // shows error

public function scopeEffectiveDate($query)
    {
        $current_date = Carbon::now()->toDateTimeString();
        return $query->groupBy('insurance_provider_id')->latest('effective_date')->where('effective_date', '<=', $current_date);
    }

我得到一个结果,但没有最新的生效日期,这是错误的结果。

1 个答案:

答案 0 :(得分:1)

检查此代码

public function scopeEffectiveDate($query)
{
    $current_date = Carbon::now()->toDateTimeString();
    return $query->orderBy('effective_date', 'desc')->where('effective_date', '<=', $current_date);
}