目前,在我们的系统中,我通过使用laravel可发送邮件发送电子邮件,
Mail::to($user)->send(new AccountCreation($user))
这可以按预期工作,但是在我们的系统中,对于何时向某人发送电子邮件,我们有一些复杂的全局规则,例如:
if ($user->isActive) {
Mail::to($user)->send(new AccountCreation($user));
}
我不想每次都检查用户,而是希望通过可邮寄的逻辑来处理此问题。
是否有一种干净的方法来处理何时发送电子邮件的全局规则?
答案 0 :(得分:0)
在用户模型中创建一个mail()函数,并为所有用户插入全局规则。因此,与其调用:
Mail::to($user)->send(new AccountCreation($user))
您将打电话给
$user->mail(new AccountCreation($user))
您可以使您的邮件功能如下:
class User extends Model {
(...)
public function mail(Mailer $mailer) {
if ($this->isActive) {
Mail::to($this)->send($mailer);
}
}
(...)
}