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

标签 laravel notifications

我遇到了一种情况,我正在向多个用户发送通知,并且过去我使用过此代码:

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,因为这工作方式不同。

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

最佳答案

您不必将用户作为参数传递,您已经将其包含在 $notifying 中,并且可以检查您想要的内容。

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

关于Laravel 通知外观在发送通知之前检查用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43787214/

相关文章:

android - Activity 结束时如何避免明确通知

notifications - 通知 android 5。状态栏图标为空,大图标上通知图标为空

laravel - 将数组值映射到项目集合

php - Laravel 验证器无法正常工作 - 重定向主页

需要 Laravel vue axios 解释

windows - 如何使用 Delphi 让 Toast 通知保留在 Windows 10 操作中心

php - 在 Views laravel 上使用 carbon

php - Laravel Eloquent 多个表之间的关系

android - Quickblox FCM 通知不起作用

android - PendingIntent 对第一个通知正常工作,但对其余通知不正确