2017-05-18 176 views
2

我想在我的应用程序中使用Laravel的softdelete()方法,并且我想说在发布日期和时间30天后软删除帖子,目前我没有任何代码在我的应用程序,因为我正在研究,看看是否有可能。laravel中帖子的自动删除日期5.4

我的问题是我怎么能说这个帖子必须在发布日期后的30天内删除?

回答

0

您可以为此创建一个工作(cronjob),并将其定义为每天运行并检查30天前创建的帖子。

有关详细信息,请查看此链接

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

+0

我没有找到任何有关玉米作物的解释,但是如果我没有错,我必须在我的cPanel中手工制作玉米作物吧?有没有办法让laravel自己做这件事? – djhru

+0

@robertnicjoo你只需要创建一个cron工作,laravel将负责其余的工作。 – Sandeesh

0

你需要的是使用Task Scheduler

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

此命令按预定运行频率运行,计划程序将处理该预定命令的每次运行(请参见documentation)。

1

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

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

您也可以直接把代码写在调度,如果是简单的。

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

确保在模型上启用软删除。

+0

所以你用这种方式说我不需要使用玉米棒吧? – djhru

+0

这反过来需要你为laravel任务调度器设置一个cronjob来工作。 – Sandeesh