Тип нескольких уведомлений Laravel - PullRequest
0 голосов
/ 19 сентября 2019

Я хочу, чтобы в моем веб-приложении было несколько типов уведомлений.Я уже довольно неплохо уведомил пользователя о том, что произошло;оно работает.Теперь я хочу создать другой тип уведомлений.Поскольку Laravel использует одну и ту же таблицу notifications для всех уведомлений, которую я прочитал здесь , я создал еще один класс уведомлений с помощью команды php artisan make: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) два типа уведомлений.Я попробовал то, что прочитал здесь : $user->notifications->filter(function($e) { $e->type == 'NewNotificationClass'}), но я получаю сообщение об ошибке: syntax error, unexpected '}' ... Я также попытался отобразить тип уведомления с помощью {{$notification->type}}, но это отображается только для пользователей, у которых есть только один тип полученных уведомлений.Когда пользователь получает более одного Уведомления, кажется, что я больше не могу отображать эти уведомления.

Как точно я могу получить данные уведомления определенного типа уведомления для пользователя в Laravel?Кто-нибудь из вас уже сделал что-то подобное?Любая помощь будет очень ценится

1 Ответ

0 голосов
/ 21 сентября 2019
$notifications = $request
->user()
->notifications
->where('type', 'App\Notifications\CommentCreated')
->all();

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...