我正在开发laravel 5 app。我有一张包含以下字段的表格:
表名:应用程序
expiration_date datetime(从今天起20天)
答案 0 :(得分:1)
使用Laravel查看task scheduling。您可以安排一个功能来为您检查并根据需要进行更改,或创建一个工匠命令并安排 - 您可以选择。
你真的需要先给它一个破解然后如果你遇到麻烦发布你的代码,我们真的为你解答这个问题。但是,有关如何执行此操作的一些示例如下:
安排功能
内部app/Console/Kernel.php
:
//Rest of file above
protected function schedule(Schedule $schedule)
{
$schedule->call(function () {
$applications = ModelName::where('expiration_date', '<=', \Carbon\Carbon::now())->get();
foreach($applications as $application)
{
//Update each application as you want to
$application->application_status = 'example';
$application->save();
}
})->daily();
}
//Rest of file below
创建命令并安排
这个过程非常相似,而不是逐字拼写,你可以按照blog post进行拼写。
在调度程序中有步骤后,只需设置调度程序以使用cron作业运行;
* * * * * php /path-to-your-application-artisan schedule:run >> /dev/null 2>&1
当然,你可以adjust the frequency运行该函数。
由于您正在查看日期小于或等于现在的记录,因此会忽略那些NULL
值expiration_date
的记录。