Laravel 通知。如果只有电子邮件地址可用,则发送电子邮件

Aru*_*wat 0 php notifications laravel laravel-5 laravel-queue

目前,我正在使用 Laravel 5.7 项目

现在我正在发送Laravel 通知(电子邮件、短信和 OneSignal 推送)

用户电子邮件是可选的(使用手机登录)。现在,如果用户只提供电子邮件地址,我想发送电子邮件。否则,我会发送短信,并且将始终发送推送通知(通过电子邮件和短信)。

在通知中我检查

    public function toMail($notifiable)
    {
        if($this->user->email != null){
           return $(new MailMessage())->subject(__('Received Test Email  :app_name', ['app_name' => app_name()]))->view('mail.testView');
        }
        return false;
    }
Run Code Online (Sandbox Code Playgroud)

如果有电子邮件地址,则电子邮件发送成功,但如果没有电子邮件地址,则return false执行队列失败,并重试再次发送。队列永远不会停止。

如果电子邮件地址不可用,如何不“排队电子邮件”?

mde*_*exp 5

via您还可以在通知类的方法中实现该检查,['mail']并且仅当可通知实体具有电子邮件地址时才返回,否则返回一个包含您将通知用户的渠道的数组,或者返回一个空数组以完全跳过通知。