【发布时间】:2019-05-04 23:07:04
【问题描述】:
我正在尝试send email three days before the expired date,,但我不知道该怎么做?
逻辑
- 检索剩余三天到期的所有订阅者
- 向他们的用户发送电子邮件
代码
我需要检查名为subscribes.的时间戳
$subscribes = Subscribe::all();
此表有一个名为 expires_at 的列,我需要检查它以查找 3 days left.
还有我的邮件
Mail::to($user->email)->send(new SubscribeExpire($user, $subscribe));
我对碳计算的事情感到困惑,有人可以帮忙吗?
更新
根据下面的答案,我现在有了这个:
$subscribes = Subscribe::where('expires_at', Carbon::now()->subDays(3))->get();
$user = [];
$package = [];
foreach($subscribes as $subscribe){
$user = User::where('email', $subscribe->email);
$package = Package::where('id', $subscribe->package_id);
}
Mail::to($user->email)->send(new SubscribeExpire($user, $package));
但是当我运行命令时它得到这个错误
ErrorException : Trying to get property 'email' of non-object
【问题讨论】:
-
$user = User::where('email', $subscribe->email) 应该是 $user = User::where('email', $subscribe->email)->first( );
-
Package也是如此。
-
如果我有多个不同用户的订阅怎么办?它只得到第一个对吗?
-
在这种情况下使用“->get()”而不是“->first()”并使用foreach循环遍历这些用户并向这些用户中的每一个发送电子邮件。
-
我刚刚添加它作为答案。将代码 sn-p 放在那里更容易。看看这是否适合你。
标签: laravel php-carbon laravel-mail