Найти дату старше 15 дней в Laravel - PullRequest
0 голосов
/ 28 апреля 2018

Мне нужно показать сравнение даты доставки, если она истекла 15 дней, а также показать track_track_status = 0 по умолчанию. Когда я это делаю, выдается ошибка

Ошибка Столбец не найден: 1054 Неизвестный столбец '' delivery_date '+ INTERVAL 15 DAY

$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();

Ответы [ 3 ]

0 голосов
/ 28 апреля 2018

используйте необработанный запрос, как показано ниже:

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

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

проверьте это и ответьте здесь, если это возвратит любую ошибку.

0 голосов
/ 28 апреля 2018

Просто сделай:

$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();

Проблема в том, что построитель запросов будет псевдонимом имени таблицы, но не будет его псевдонимом, если оно находится в пределах whereRaw

0 голосов
/ 28 апреля 2018

Используйте Carbon с laravel orWhere вместо

->orWhere( 'delivery_date', '<=', Carbon::now()->subDays(15))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...