Я не могу понять одну проблему с уведомлением базы данных в Laravel. Я sh, чтобы показать уведомления пользователей, как Facebook. Например: «Пользователь X, Y и еще 2 человека прокомментировали вашу фотографию». Моя структура базы данных выглядит следующим образом:
+--------------------------------------+------------------------------+-----------------+---------------+-----------------------------------------+---------+---------------------+---------------------+
| id | type | notifiable_type | notifiable_id | data | read_at | created_at | updated_at |
+--------------------------------------+------------------------------+-----------------+---------------+-----------------------------------------+---------+---------------------+---------------------+
| 6d57d30c-419c-4f22-9aaa-f6bb22354887 | App\Notifications\NewComment | App\Models\User | 1 | {"userId":4,"commentId":42,"albumId":3} | | 2020-01-29 18:00:10 | 2020-01-29 18:03:15 |
| 7d57d30c-419c-4f22-9aaa-f6bb22354887 | App\Notifications\NewComment | App\Models\User | 1 | {"userId":4,"commentId":42,"albumId":3} | | 2020-01-29 18:00:15 | 2020-01-29 18:03:15 |
| 8d57d30c-419c-4f22-9aaa-f6bb22354887 | App\Notifications\NewComment | App\Models\User | 1 | {"userId":5,"commentId":42,"albumId":2} | | 2020-01-29 18:03:15 | 2020-01-29 18:03:15 |
| 9d57d30c-419c-4f22-9aaa-f6bb22354887 | App\Notifications\NewComment | App\Models\User | 1 | {"userId":4,"commentId":42,"albumId":2} | | 2020-01-29 18:02:15 | 2020-01-29 18:03:15 |
+--------------------------------------+------------------------------+-----------------+---------------+-----------------------------------------+---------+---------------------+---------------------+
Я не могу понять, как группировать по type
и albumId
(в столбце data
). Можете ли вы мне помочь, пожалуйста? Я все еще перезаписываю метод пользовательской модели:
public function getNotificationsAttribute()
{
$notifications = $this->notifications();
$notifications->groupBy('type', 'data->albumId')->orderBy('created_at', 'desc')->get();
return $notifications;
}