【问题标题】:Laravel Anonymous Notification - How to get route value from Laravel Notification::route() function?Laravel 匿名通知 - 如何从 Laravel Notification::route() 函数获取路由值?
【发布时间】:2021-05-28 10:54:13
【问题描述】:
Notification::route('sms', $mobileNumber)->notify(new SmsNotification($content));

您最好在 Notifiable 模型(例如:用户)中使用 routeForNotificationSms 来获取路由的值。 但是由于我正在向未注册用户发送通知,因此我试图访问我频道中的 $mobileNumber 变量,而无需转到 User 模型。 如果我尝试访问数组中的值,则会出现错误

不能使用 Illuminate\Notifications\AnonymousNotifiable 类型的对象作为数组

如何直接从通道访问 Notification::route 参数中的值?

【问题讨论】:

    标签: php laravel laravel-notification


    【解决方案1】:

    从您的频道中,send() 方法被传递给通知(在本例中为AnonymousNotifiable 的实例和通知。通知包含一个按频道索引的数组,您可以在其中获取此路由信息。

    class SmsNotificationChannel
    {
        public function send(mixed $notifiable, Notification $notification): void
        {
            $route = $notifiable->routes[self::class] ?? null;
            if ($route) {
                // do your thing
            }
        }
    }
    

    这假设您使用完整的类名调用匿名通知:

    Notification::route(SmsNotificationChannel::class, $mobileNumber)
        ->notify(new SmsNotification($content));
    

    您必须尝试看看它在原始代码中使用“sms”等短名称时的行为。我不确定它是否仍会按类名索引或使用短名称。

    【讨论】:

      猜你喜欢
      • 2016-07-26
      • 2015-07-22
      • 1970-01-01
      • 2014-10-26
      • 2018-04-04
      • 1970-01-01
      • 1970-01-01
      • 2016-06-15
      • 2014-11-16
      相关资源
      最近更新 更多