【问题标题】:Laravel send same notification via different methodsLaravel 通过不同的方法发送相同的通知
【发布时间】:2021-01-23 07:20:35
【问题描述】:

我正在尝试通过不同的通知方法->notify()同一类型的不同用户。 例如:我有TicketCompleted 通知,它的via() 方法包含:return ['mail', 'database'];。我也实现了toArray()toMail() 这两种方法。所以我想做的是以下几点:

具有Accountant 角色的模型Client 只能通过toArray() 方法通知;

具有Contact 角色的模型Client 只能通过toEmail() 方法得到通知;

如何做到这一点?

【问题讨论】:

    标签: laravel laravel-8 laravel-notification laravel-events


    【解决方案1】:

    via()可以返回不同的值:

    public function via($notifiable)
    {
      if ($notifiable->role === 'Accountant') {
        return ['database'];
      } else if ($notifiable->role === 'Contact') {
        return ['mail'];
      }
    
      // default for all other clients
      return [];
    }
    

    如果您对其他模型使用相同的通知,您还必须检查 $notifiable 的类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多