Laravel автоматически обновляет поле в таблице, когда текущая дата превышает определенную дату в таблице - PullRequest
0 голосов
/ 14 марта 2019

Я пытаюсь обновить определенное поле в таблице базы данных, когда текущая дата больше, чем другое определенное поле в таблице.

Моя таблица "задача":

id |..... | startDate  | endDate   | status
---|------|------------|-----------|--------
1  |..... | 2019/03/13 | 2019/03/14| Process

Поэтому, если текущая дата и время> endDate, автоматически обновляют статус до «Истек» в режиме реального времени без каких-либо щелчков.

Я создал планировщик в Kernel.php, но ничего не происходит.Мой планировщик:

 $schedule->call(function () {
            DB::table('tasks')->whereDate('endDate', '<', date('Y/m/d H:i'))->update(['status', 'Expired']);
        })->everyMinute();

Мое значение даты окончания и формат:

2019/03/12 17:00

Заранее спасибо

PS - я не использую Carbon

1 Ответ

1 голос
/ 14 марта 2019

Я предлагаю использовать планировщик и запустить простую команду, которая использует DB . Вы можете запускать эту задачу каждые несколько минут, и она выполнит эту работу.

DB::table('task')->whereDate('endDate', '<', now())->update(['status' => 'expired']);

Если вы не хотите использовать Carbon, просто измените now() на date('Y-m-d H:i:s')

Не забудьте добавить одну запись cron для запуска планировщика.

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
...