php - Laravel 匿名通知 - 如何从 Laravel Notification::route() 函数获取路由值?
问题描述
Notification::route('sms', $mobileNumber)->notify(new SmsNotification($content));
最佳情况下,您应该在 Notifiable 模型(例如:用户)中使用 routeForNotificationSms 来获取路由的值。但是由于我正在向未注册用户发送通知,因此我试图访问我频道中的 $mobileNumber 变量,而无需转到 User 模型。如果我尝试访问数组中的值,我会得到错误
不能使用 Illuminate\Notifications\AnonymousNotifiable 类型的对象作为数组
如何直接从通道访问 Notification::route 参数中的值?
解决方案
从您的频道中,该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”等短名称时的行为方式。我不确定它是否仍会按类名索引或使用短名称。
推荐阅读
- r - 将表格线边框更改为类似于 kable LaTeX 的内容
- django - Django:避免端口 8000 的冲突(运行服务器)
- angular - 如何为现有的 Angular 项目(启用 CSS)在 nebular 中创建自定义主题?
- django - 如何从管理面板获取值到仪表板
- latex - 脚注中的 Rmarkdown Latex 引用(哈佛风格)
- c# - 如何将对象从屏幕外移动到屏幕外?(Unity2D)
- java - Spring Boot - 将应用程序属性注入 Util 类变量
- apache - HTTP缓存问题。请求开启和关闭
- mysql - 在 MySQL SUB-QUERY 中尊重 GROUP BY 子句
- python - 如何从python的崩溃转储中获取信息