如何在laravel 5.6中35天后自动软删除数据?

时间:2018-10-29 06:14:45

标签: php laravel laravel-5

我有一张表death_notice和notice_time。在notice_time表中,有一个名为notice_duration的列并存储了35,这意味着该死亡通知在网站上显示了35天。

现在,我想在laravel 5.6中自动软删除超过35天的数据。我该怎么办?

5 个答案:

答案 0 :(得分:0)

创建一个检查当前时间的函数-created_at列,如果> 35天删除...,可以使用计划 https://laravel.com/docs/5.6/scheduling

答案 1 :(得分:0)

您可以运行cron作业,并检查created_date是否大于35天,然后将状态更改为0。

答案 2 :(得分:0)

请使用Laravel的时间表来删除crontab。 https://laravel.com/docs/5.7/scheduling

答案 3 :(得分:0)

您可以使用以下代码。可能会对您有所帮助

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


$deathnotice= App\deathnotice::withTrashed()
                ->where('created_at', '>=', deathnotice::now()->subDays($noticetime->notice_duration)->toDateTimeString());
                ->get();

答案 4 :(得分:0)

您可以创建每天晚上运行并在以下查询中执行的laravel scheduling

App\deathnotice::withTrashed()
            ->where('created_at', '>=', deathnotice::now()->subDays($noticetime->notice_duration)->toDateTimeString());
            ->get();