繁体   English   中英

Laravel - 应该发送通知方法

[英]Laravel - should send notification method

我有这个配置,用户可以设置它想要接收的通知,我不想在我调用notify的每个方法上执行 If 。

我想知道我的通知 class 中是否有一种方法可以进行此验证,或者我该怎么做。

我想过一个解决方案,但它看起来很麻烦,我可以via内部验证,如果用户设置为不接收,则只返回一个空数组

而且我还在Illuminate\Notifications\NotificationSender中找到了一个名为shouldSendNotification的方法,但我不知道如何覆盖它,或者即使它正在使用这个 class,因为它看起来只适用于队列

OBS:Laravel 7

via以前是最好的地方,但 Laravel 现在支持shouldSend通知上的确切此行为。

/**
 * Determine if the notification should be sent.
 *
 * @param  mixed  $notifiable
 * @param  string  $channel
 * @return bool|null
 */
public function shouldSend($notifiable, $channel)
{
    if ($user->isUnsubscribed()) {
        return false;
    }
}

我想最简单的方法是在您的User model 中定义一个包装器方法并使用它而不是像这样notify

public function _notify($notification)
{
    if ($this->notify_condition) {
        $this->notify($notification);
    }
}

现在你使用_notify而不是notify

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM