![](/img/trans.png)
[英]Cannot send notification in Laravel (lack of via() method in MailMessage)
[英]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.