2017-05-04 39 views
2

之前,我有我發送給多個用戶,並在過去的通知我已經使用這個代碼的情況:Laravel通知門面檢查用戶發送通知

foreach ($users as $user) { 
    $user->notify(new StaffNotify($dirtyAttributes, $user)); 
} 

,如果一個用戶我會檢查該通知內有一個player_id

public function via($notifiable) 
{ 
    if ($this->user->player_id) { 
     return [OneSignalChannel::class, 'mail']; 
    } else { 
     return ['mail']; 
    } 
} 

(對於OneSignal),如果他有,我也會發送推送通知也在他們的手機上。

但有了這個新代碼:

\Notification::send($users, new StaffNotify($dirtyAttributes)); 

它是要好得多,因爲我只有1只要求我的服務器,而不是250的,我不知道如何檢查,如果用戶已經player_id因爲這個作品不同。

有沒有人知道如何在發送通知前檢查用戶?

+0

我認爲你需要將它分成兩個通知。一個用戶沒有player_id和一個。 'via'方法可以檢查第一個集合。 –

回答

2

您不必將用戶作爲參數傳遞,您已經在$ notifiable中擁有它,並且您可以檢查您想要的內容。

public function via($notifiable) 
{ 
    if ($notifiable->player_id) { 
     return [OneSignalChannel::class, 'mail']; 
    } else { 
     return ['mail']; 
    } 
}