我有一个API
(由Laravel
制作)用于iOS
应用程序,它基本上是一个事件管理器,我用户有一些点可以用于参加活动,如果他们说他们会去,但他们不是我必须拿出一些观点。
所以我的问题是如何在事件结束时调用下面的函数来取出积分。
public function takePoints(){
$postUser = post_user::where('posts_id', '=', $id);
foreach ($postUser as $post){
if($post->state){
$user = User::where('id', '=', $postUser->user_id);
$user->points -= 50;
$user->saveOrFail();
}
}
}
所以基本上是这样的:
if($post->date = $todaysDate){
$this->takePoints()
}
答案 0 :(得分:1)
您将使用Laravel的任务计划来运行定期检查并在指定时间过后执行操作。
https://laravel.com/docs/5.5/scheduling
它运行在cron
之上,允许您创建在控制台内核中定义的时间段运行的命令。
// add this to cron to run every minute
* * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
在内核中,您可以安排任务:
$schedule->job(new Heartbeat)->everyFiveMinutes();