laravel 5.4中帖子的自动删除日期

时间:2017-05-18 08:00:09

标签: php laravel soft-delete

我想在我的应用中使用Laravel的softdelete()方法,我想说在发布日期和时间30天后软删除帖子,目前我的应用中没有任何代码,因为我'我首先研究是否有可能。

我的问题是,如何在发布日期后的30天内删除帖子?

2 个答案:

答案 0 :(得分:1)

创建作业或命令并在那里执行操作。设置任务计划程序并安排任务每天或每小时运行一次作业或命令,具体取决于您所需的删除速度。

https://laravel.com/docs/5.4/scheduling

如果简单,您也可以直接在调度程序中编写代码。

$schedule->call(function () {
    Post::where('published_at', '<=', Carbon::now()->subDays(30))->delete();
})->daily();

请务必在模型上启用软删除。

答案 1 :(得分:0)

您需要的是使用Task Scheduler

您需要手动添加一个实际上在Laravel中触发调度程序的单个cronjob。在此之后,您将创建一个删除旧帖子的命令。

此命令会按计划运行,并且调度程序将处理该计划命令的每次运行(请参阅documentation)。