我有一张表death_notice和notice_time。在notice_time表中,有一个名为notice_duration的列并存储了35,这意味着该死亡通知在网站上显示了35天。
现在,我想在laravel 5.6中自动软删除超过35天的数据。我该怎么办?
答案 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();