Как автоматически удалить данные через 35 дней в Laravel 5.6? - PullRequest
0 голосов
/ 29 октября 2018

У меня есть таблица death_notice и note_time. В таблице alert_time есть столбец с именем note_duration, в котором хранится 35, что означает, что уведомление о смерти отображается на веб-сайте в течение 35 дней.

Теперь я хочу мягко удалить данные, которые автоматически пересекли 35 дней в laravel 5.6. Как я могу это сделать?

Ответы [ 5 ]

0 голосов
/ 29 октября 2018

вы можете создать расписание laravel , которое запускается каждую ночь и выполняется по следующему запросу:

App\deathnotice::withTrashed()
            ->where('created_at', '>=', deathnotice::now()->subDays($noticetime->notice_duration)->toDateTimeString());
            ->get();
0 голосов
/ 29 октября 2018

Вы можете использовать приведенный ниже код. Может быть вам поможет

$noticetime= App\noticetime::find(1);


$deathnotice= App\deathnotice::withTrashed()
                ->where('created_at', '>=', deathnotice::now()->subDays($noticetime->notice_duration)->toDateTimeString());
                ->get();
0 голосов
/ 29 октября 2018

Вы можете запустить задание cron и проверить, больше ли созданного_дата более 35 дней, затем изменить статус 0.

0 голосов
/ 29 октября 2018

Пожалуйста, используйте расписание Laravel`s, чтобы создать crontab для удаления. https://laravel.com/docs/5.7/scheduling

0 голосов
/ 29 октября 2018

Создайте функцию для проверки текущего времени - столбец создал_, если> 35 дней удалить ..., Можно использовать планирование https://laravel.com/docs/5.6/scheduling

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...