如果用户的帐户将在 5 天后到期,请通知用户 - Laravel
Notify users if their account is going to expire in 5 days later - Laravel
有很多用户在我的网站上购买高级帐户。我如何 select 帐户到期日恰好在 5 天后的用户并通知他们续订帐户?
在app\console\kernel.php
中添加以下功能,但不知道如何在查询中编写有关时间的代码。
/**
* Define the application's command schedule.
*/
protected function schedule(Schedule $schedule)
{
// $schedule->command('inspire')
// ->hourly();
$schedule->call(function () {
$users = User::where('expiration_time', '=', Carbon::now()->addDays(5))->get();
//Notify related user about account emigrations
Notification::send($users, new AccountExpiration());
})->daily();
}
获取今天和 5 天后的用户。
User::whereBetween('expiration_time', [Carbon::now(), Carbon::now()->addDays(5)])->get();
或者
User::whereBetween('expiration_time', [date("Y-m-d"), date("Y-m-d", strtotime("+5 days"))])->get();
您的代码是正确的,唯一可能导致您的查询失败的是您的数据库 table 列类型。
如果您的 expiration_time 列类型是 DATE,您应该使用
Carbon::now()->addDays(5)->toDateString()
如果您的 expiration_time 列类型是 DATETIME,您应该使用
Carbon::now()->addDays(5)
希望对您有所帮助。
有很多用户在我的网站上购买高级帐户。我如何 select 帐户到期日恰好在 5 天后的用户并通知他们续订帐户?
在app\console\kernel.php
中添加以下功能,但不知道如何在查询中编写有关时间的代码。
/**
* Define the application's command schedule.
*/
protected function schedule(Schedule $schedule)
{
// $schedule->command('inspire')
// ->hourly();
$schedule->call(function () {
$users = User::where('expiration_time', '=', Carbon::now()->addDays(5))->get();
//Notify related user about account emigrations
Notification::send($users, new AccountExpiration());
})->daily();
}
获取今天和 5 天后的用户。
User::whereBetween('expiration_time', [Carbon::now(), Carbon::now()->addDays(5)])->get();
或者
User::whereBetween('expiration_time', [date("Y-m-d"), date("Y-m-d", strtotime("+5 days"))])->get();
您的代码是正确的,唯一可能导致您的查询失败的是您的数据库 table 列类型。
如果您的 expiration_time 列类型是 DATE,您应该使用
Carbon::now()->addDays(5)->toDateString()
如果您的 expiration_time 列类型是 DATETIME,您应该使用
Carbon::now()->addDays(5)
希望对您有所帮助。