laravel - 如何为新登录的用户保留数据?
问题描述
我只是想问一下如何保存来自 Laravel 中先前触发的事件的数据。一个示例场景:管理员更新数据库记录,然后应该将其广播给所有用户(当前登录或将来登录的用户)。当前,当前登录的用户通过使用 laravel-echo 和 pusher-js 的侦听器接收更新。我的问题是,当事件被触发并且用户登录到应用程序时,该用户没有收到更新的数据库记录,因为在用户登录之前触发了事件。我正在使用 Beyondcode 的 laravel-websocket 包。谢谢!
解决方案
为了为用户保存通知,您需要使用数据库方法,请参见此处:https ://laravel.com/docs/8.x/notifications 所以,首先您需要迁移表:
php artisan notifications:table
php artisan migrate
然后,在您的通知文件中,设置:
public function toDatabase($notifiable)
{
return [
'foo_id' => $this->foo->id,
'value' => $this->foo->value,
];
}
最后,您可能会收到给定用户的未读通知,如下所示:
foreach ($user->unreadNotifications as $notification) {
echo $notification->type;
}
推荐阅读
- java - 在多对多关系的测验中添加问题
- javascript - 从不同的useEffects反应批量状态更新?
- html - 如何在 pug 中设置元素名称?
- laravel - Laravel EmailVerification 控制器的构造方法是做什么的?
- google-sheets - Google 电子表格内部查询中的错误
- angular - 如何从商店中删除功能
- c - 每秒(或更少)将新文件写入磁盘是否会对硬件造成风险?
- react-native - 网络请求失败 Expo Fetch
- spring-boot - 在 Spring Boot 中用 @RestController 替换 @Controller 不会显示预期的视图
- python - 查找子列表的特定结果