Laravel通知facade在发送通知之前检查用户

Laravel通知facade在发送通知之前检查用户,laravel,notifications,Laravel,Notifications,我有一种情况,我正在向多个用户发送通知,过去我使用过以下代码: foreach ($users as $user) { $user->notify(new StaffNotify($dirtyAttributes, $user)); } 我会在通知中检查用户是否有玩家id public function via($notifiable) { if ($this->user->player_id) { return [OneSignalChann

我有一种情况,我正在向多个用户发送通知,过去我使用过以下代码:

foreach ($users as $user) {
    $user->notify(new StaffNotify($dirtyAttributes, $user));
}
我会在通知中检查用户是否有玩家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,因为这样做的效果不同


有人知道如何在发送通知之前检查用户吗?

您不必将用户作为参数传递,您已经在$notifiable中有了它,您可以随时检查所需内容

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

我想你需要把它分成两部分。一个用户没有玩家id,另一个用户没有。via方法的
可以检查集合的第一个。我可以请您在此处查看与GrapesJS相关的问题吗?您承诺在此处完成一篇与GrapesJS相关的文章:但这还没有完成。