gpt4 book ai didi

php - 如何在 MySQL 中的到期日期后更新列?

转载 作者:行者123 更新时间:2023-11-28 23:41:13 24 4
gpt4 key购买 nike

我正在开发 Laravel 5 应用程序。我有一个包含如下字段的表格:

表名:应用程序

  • application_status tinyint(1)
  • expiration_date 日期时间(从今天起 20 天)

    1. 如何在任何 expiration_date 过后更新表中每一行的 application_status?
    2. 当 expiration_date 为 NULL 时,我如何才能不发生任何事情(问题是一旦申请被接受,过期将被禁用或设置为 NULL)

最佳答案

查看task scheduling与 Laravel。您可以安排一个功能来为您检查并根据需要进行更改,或者创建一个 artisan 命令并安排它 - 选择权在您手中。

您真的需要先尝试一下,然后如果您遇到麻烦,请将您的代码发布到错误的地方,以便我们真正为您解答。但是,下面是一些如何执行此操作的示例:

安排一个函数

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函数运行的位置。

因为您正在查看日期小于或等于现在的记录,所以它将忽略那些 expiration_date 具有 NULL 值的记录。

关于php - 如何在 MySQL 中的到期日期后更新列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34328292/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com