Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何为何时发送电子邮件创建全局规则_Php_Laravel_Laravel 5 - Fatal编程技术网

Php 如何为何时发送电子邮件创建全局规则

Php 如何为何时发送电子邮件创建全局规则,php,laravel,laravel-5,Php,Laravel,Laravel 5,目前在我们的系统中,我使用laravel邮件发送电子邮件,如下所示 Mail::to($user)->send(新建账户($user)) 这与预期的效果一样,但是在我们的系统中,我们有一些复杂的全局规则,用于何时向应该在任何地方使用的人发送电子邮件,例如: if ($user->isActive) { Mail::to($user)->send(new AccountCreation($user)); } 我不想每次都检查用户,而是希望邮件逻辑处理这个问题 是否有一种干净的

目前在我们的系统中,我使用laravel邮件发送电子邮件,如下所示

Mail::to($user)->send(新建账户($user))

这与预期的效果一样,但是在我们的系统中,我们有一些复杂的全局规则,用于何时向应该在任何地方使用的人发送电子邮件,例如:

if ($user->isActive) {
    Mail::to($user)->send(new AccountCreation($user));
}
我不想每次都检查用户,而是希望邮件逻辑处理这个问题

是否有一种干净的方法来处理何时发送电子邮件的全局规则?

在用户模型中创建一个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);
        }
    }
    (...)
}

你好,安德烈。感谢您的回答,但是查看我评论的链接,似乎覆盖
邮件服务提供商
是处理此问题的更优雅的方式。您好@hdifen我不同意您的看法。作为一个只处理
用户
模型的规则,它应该在模型中。