【问题标题】:Laravel multiple notifications typeLaravel 多通知类型
【发布时间】:2020-01-20 19:52:30
【问题描述】:

我想在我的网络应用程序中输入多个通知类型。我已经很好地将发生的特定事情通知用户;有用。我现在要做的是创建另一种通知类型。由于 Laravel 对所有通知使用相同的 notifications 表,就像我读过的 here 一样,我使用 php artisan make:notification 命令创建了另一个 Notification 类。设置后,触发后它也可以正常工作:它很好地记录在notifications 数据库表中,并在notifications type 列中提到了它的特定“类型”。现在目标用户应该能够收到这两个通知。

我的问题是如何设法将特定通知显示给用户。实现第一个通知类后,一切正常:用户收到他的通知。现在有两种通知类型,每当我尝试像我一样在刀片视图中显示带有@foreach(auth()->user()->notifications as $notification) 的所有通知时,我都会收到一个错误Undefined index: EtudiantsChoixTheme,其中EtudiantsChoixTheme 是我发送给用户的数据:


        $EtudiantsChoixTheme = [
            'id' => $idData,
                 ...
            'theme' => $themeData
        ];

        \Notification::send($user, new StudentChoosedThemeNotification($EtudiantsChoixTheme));

StudentChoosedThemeNotification 是我实现的第一个通知类。仅当我想显示已收到(notifiable_id 字段中的用户 ID)两种通知类型的用户的通知时,才会发生此错误。我尝试了我读过的here$user->notifications->filter(function($e) { $e->type == 'NewNotificationClass'}),但我收到了一个错误:syntax error, unexpected '}'...我也有tried{{$notification->type}}显示通知类型,但这仅显示只收到一种通知的用户。当用户收到多个通知时,我似乎无法再显示这些通知。

在 Laravel 中,我可以多精确地为用户检索特定通知类型的通知数据?你们有没有人做过这样的事情?任何帮助将不胜感激

【问题讨论】:

    标签: php laravel notifications


    【解决方案1】:
    $notifications = $request
    ->user()
    ->notifications
    ->where('type', 'App\Notifications\CommentCreated')
    ->all();
    

    https://laravel.com/docs/6.x/collections#available-methods

    【讨论】:

    • 你知道如何删除通知类型的类命名空间,只使用类基名吗?谢谢。
    • 所以这个用户只会得到commentCreated通知。如果我只想让管理员通过邮件和数据库获取此通知,而对于所有者(角色),他将通过邮件、数据库和短信获取此通知。
    • 请不要通过破坏您的帖子为他人增加工作量。通过在 Stack Exchange (SE) 网络上发帖,您已在 CC BY-SA license 下授予 SE 分发内容的不可撤销权利(即无论您未来的选择如何)。根据 SE 政策,分发非破坏版本。因此,任何破坏行为都将被撤销。请参阅:How does deleting work? …。如果允许删除,则帖子下方左侧有一个“删除”按钮,但仅在浏览器中,而不是移动应用程序中。
    猜你喜欢
    • 1970-01-01
    • 2017-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多