首页 > 解决方案 > laravel 任务调度器删除帖子

问题描述

我在 laravel 中设置了一个简单的任务计划程序,一切正常,我遇到的唯一问题是帖子在我设置的时间没有删除。我希望帖子在创建帖子后 5 分钟后删除,不知道为什么我的帖子会在一分钟后删除。我相信我希望我的任务计划程序每分钟检查一次,因为每个帖子都有不同的删除时间。这是我的调度程序:

protected function schedule(Schedule $schedule)
{


    $schedule->call(function (){
    $post=    Post::where('created_at', '<', Carbon::now()->addMinutes(5))->delete();
    })->everyMinute();
}

标签: laravellaravel-5

解决方案


从您的问题来看,您似乎应该减去分钟数,而不是添加它们

protected function schedule(Schedule $schedule)
{
    $schedule->call(function () {
        Post::where('created_at', '<', \Carbon\Carbon::now()->subMinutes(5))->delete();
    })->everyMinute();
}

如果您只是使用Carbon::now(),请确保使用 use 语句导入它。如果你像我在这个例子中那样使用它,你不需要导入它。

此外,由于您$post在删除后没有使用该变量,因此您不需要分配它。


推荐阅读