在 laravel 中查找早于 15 天的日期

Find a date older than 15 days in laravel

我需要显示比较交货日期(如果超过 15 天)并且还显示 track_track_status=0 作为 default.when 我这样做会引发错误

错误 找不到列:1054 Unknown column ''delivery_date' + INTERVAL 15 DAY < NOW()' in 'where clause

$secondstatus = DB::table('registrations')
            ->join('ssi_tracks', 'registrations.registration_id', '=', 'ssi_tracks.registration_id')
            ->select('ssi_tracks.ssi_track_id', 'address', 'model', 'chassis', 'delivery_date','ssi_tracks.track_second_status')
            ->where([["ssi_tracks.track_second_status", "=", 0]])
             ->orWhereRaw('registrations.delivery_date + INTERVAL 15 DAY <= NOW()')

            ->get();

改用Carbon with laravel orWhere

->orWhere( 'delivery_date', '<=', Carbon::now()->subDays(15))

使用原始查询如下:

$now = \Carbon\Carbon::now();

->orWhere(DB::raw(registrations.delivery_date + INTERVAL 15 DAY, "<=", $now))

检查它并在此处回复returns任何错误。

就这样:

$secondstatus = DB::table('registrations')
            ->join('ssi_tracks', 'registrations.registration_id', '=', 'ssi_tracks.registration_id')
            ->select('ssi_tracks.ssi_track_id', 'address', 'model', 'chassis', 'delivery_date','ssi_tracks.track_second_status')
            ->where([["ssi_tracks.track_second_status", "=", 0]])
             ->orWhere('registrations.delivery_date', '<=', \DB::raw("NOW() - INTERVAL 15 DAYS")))    
            ->get();

问题在于,查询生成器将为 table 名称添加别名,并且如果它在 whereRaw

中,则不会为其添加别名