gpt4 book ai didi

laravel - 如何根据laravel中的日期发送通知?

转载 作者:行者123 更新时间:2023-12-03 16:10:57 27 4
gpt4 key购买 nike

我试图让我的后端每天发送一个接近指定日期的通知。
例如,如果我的用户添加日期“13-07-2020”,他应该收到通知“您的截止日期是 1 天!” (因为今天是 12 点)。
我已经在 Laravel 的文档中阅读了有关“任务调度”的部分,但我不确定如何以这种方式实现它,每个用户都会收到自己的通知。
怎么可能做到这一点?该文档指出:“Laravel 的命令调度程序允许您在 Laravel 本身内流畅而富有表现力地定义您的命令调度。”所以,它让我相信它只是为了命令。

最佳答案

我会用 Laravel 命令来解决这个问题。
创建命令
要创建命令,您可以运行:

php artisan make:command NotifyUsers
这将创建 NotifyUsers命令。
handle()该命令的功能,您可以向每个设置了截止日期的用户发送消息。
public function handle() {
$users = User::whereNotNull('deadline_date')->get();
foreach($users as $user) {
$diffInDays = $user->deadline_date->diff(Carbon::now())->days;

$user->notify("Your deadline is in $diffInDays day!");
}
}
我将命令的签名设置为以下内容:
protected $signature = 'users:notify';
这意味着您可以通过运行来调用命令
php artisan users:notify
调度命令
Console/Kernel.php类,您可以安排命令。
首先你应该把它添加到 $commands大批:
protected $commands = [
NotifyUsers::class,
];

而在 schedule()您可以安排命令每天运行一次。
protected function schedule(Schedule $schedule) {
// Here you can execute the command once every day
$schedule->command('users:notify')->dailyAt('14:00');
}

关于laravel - 如何根据laravel中的日期发送通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62859790/

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