laravel任务计划程序删除帖子

时间:2018-08-31 17:46:26

标签: laravel laravel-5

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

protected function schedule(Schedule $schedule)
{


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

1 个答案:

答案 0 :(得分:1)

从您的问题中看来,您似乎应该减去分钟,而不要加上分钟

188.114.110.199 - - [31/Aug/2018:13:08:17 -0400] "GET /?_=1535730766583 HTTP/1.1" 500 262 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 S
162.158.167.141 - - [31/Aug/2018:13:08:17 -0400] "GET /?_=1535725426589 HTTP/1.1" 500 262 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"

如果您仅使用protected function schedule(Schedule $schedule) { $schedule->call(function () { Post::where('created_at', '<', \Carbon\Carbon::now()->subMinutes(5))->delete(); })->everyMinute(); } ,请确保使用use语句导入它。如果您像在本示例中一样使用它,则无需导入。

此外,由于删除后没有使用Carbon::now()变量,因此无需分配变量。