Laravel 通过不同的方法发送相同的通知
Laravel send same notification via different methods
我正在尝试通过不同的通知方法->notify()
同一类型的不同用户。
例如:我有 TicketCompleted
通知,它的 via()
方法包含:return ['mail', 'database'];
。我还实现了 toArray()
和 toMail()
两种方法。所以我想做的是:
具有角色 Accountant
的模型 Client
只能通过 toArray()
方法得到通知;
具有角色 Contact
的模型 Client
只能通过 toEmail()
方法得到通知;
如何实现?
您可以在 via()
中 return 不同的值:
public function via($notifiable)
{
if ($notifiable->role === 'Accountant') {
return ['database'];
} else if ($notifiable->role === 'Contact') {
return ['mail'];
}
// default for all other clients
return [];
}
如果您对其他型号使用相同的通知,您还必须检查 $notifiable
的 class。
我正在尝试通过不同的通知方法->notify()
同一类型的不同用户。
例如:我有 TicketCompleted
通知,它的 via()
方法包含:return ['mail', 'database'];
。我还实现了 toArray()
和 toMail()
两种方法。所以我想做的是:
具有角色 Accountant
的模型 Client
只能通过 toArray()
方法得到通知;
具有角色 Contact
的模型 Client
只能通过 toEmail()
方法得到通知;
如何实现?
您可以在 via()
中 return 不同的值:
public function via($notifiable)
{
if ($notifiable->role === 'Accountant') {
return ['database'];
} else if ($notifiable->role === 'Contact') {
return ['mail'];
}
// default for all other clients
return [];
}
如果您对其他型号使用相同的通知,您还必须检查 $notifiable
的 class。