我想在我的应用中使用Laravel的softdelete()
方法,我想说在发布日期和时间30天后软删除帖子,目前我的应用中没有任何代码,因为我'我首先研究是否有可能。
我的问题是,如何在发布日期后的30天内删除帖子?
答案 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)。