在 Laravel 中发送电子邮件通知之前检查用户设置

bru*_*obg 4 email notifications laravel

receiveEmail在 Laravel 应用程序的用户模型中有一个布尔字段。如何确保邮件通知遵守此字段,并且仅在该字段为真时才将电子邮件发送给用户?

我想要的是这段代码:

$event = new SomeEvent($somedata);
Auth::user()->notify($event);
Run Code Online (Sandbox Code Playgroud)

其中 SomeEvent 是一个扩展 Notification 并在via()方法上实现“邮件”的类,只有在用户允许电子邮件时才会发送电子邮件。

Has*_*bur 5

有没有人检查过这个 via() 方法:https : //laravel.com/docs/6.x/notifications#specifying-delivery-channels

public function via($notifiable)
{
        // $notifiable object is User instance for most cases
        $wantsEmail = $notifiable->settings['wants_email']; // your own logic
        if(!$wantsEmail){
            // no email only database log
            return ['database'];
        }
        return ['database', 'mail'];
}
Run Code Online (Sandbox Code Playgroud)

我希望这在向多个用户发送通知时也能起作用。谢谢