我想在我的应用程序中使用Laravel的softdelete()
方法,并且我想说在发布日期和时间30天后软删除帖子,目前我没有任何代码在我的应用程序,因为我正在研究,看看是否有可能。laravel中帖子的自动删除日期5.4
我的问题是我怎么能说这个帖子必须在发布日期后的30天内删除?
我想在我的应用程序中使用Laravel的softdelete()
方法,并且我想说在发布日期和时间30天后软删除帖子,目前我没有任何代码在我的应用程序,因为我正在研究,看看是否有可能。laravel中帖子的自动删除日期5.4
我的问题是我怎么能说这个帖子必须在发布日期后的30天内删除?
你需要的是使用Task Scheduler。
您需要手动添加一个实际触发Laravel中调度程序的cronjob。在此之后,您创建一个删除这些旧帖子的命令。
此命令按预定运行频率运行,计划程序将处理该预定命令的每次运行(请参见documentation)。
创建一个作业或命令并在那里执行操作。设置任务计划程序并计划任务,以便每天或每小时运行一次作业或命令,具体取决于所需的移除后的速度。
https://laravel.com/docs/5.4/scheduling
您也可以直接把代码写在调度,如果是简单的。
$schedule->call(function() {
Post::where('published_at', '<=', Carbon::now()->subDays(30))->delete();
})->daily();
确保在模型上启用软删除。
我没有找到任何有关玉米作物的解释,但是如果我没有错,我必须在我的cPanel中手工制作玉米作物吧?有没有办法让laravel自己做这件事? – djhru
@robertnicjoo你只需要创建一个cron工作,laravel将负责其余的工作。 – Sandeesh