Вывожу уведомления.
В таблицу
notifications в дату добавляются данные, таким способом
public function toDatabase($notifiable) {
return [
'post_id' => $this->details['post_id'], // id поста
'comment_id' => $this->details['comment_id'], //id комента
'user_comment_id' => $this->details['user_comment_id'] // id юзера, который оставил коммент
];
Теперь мне надо вывести список уведомлений, что бы было видно, кто оставил комент,
и на какой пост, сделал это так
public function readNotification()
{
$user = User::find(Auth::id());
$allData = collect();
foreach ($user->unreadNotifications as $notification) {
$collect1 = collect(Post::find($notification->data['post_id']));
$collect2 = collect(['user_comment' => Comment::find($notification->data['comment_id'])->text]);
$collect3 = collect(['user_name' => User::find($notification->data['user_comment_id'])->name]);
$allData->push($collect1
->merge($collect2)
->merge($collect3)
->merge(['id_notif' => $notification->id]));
}
return view('read-notifications', [
'allData' => $allData,
]);
}
<section class="section main-content">
<div class="container">
@foreach ($allData as $data)
<div class="card">
<div class="card-body">
<h5 class="card-title">{{$data['user_name']}}, добавил комментраий к посту - {{$data['description']}}</h5>
<div class="card-text">{!!$data['user_comment']!!}</div>
<br>
<a href="/post/{{$data['id']}}" class="btn btn-primary">Перейти</a>
<a href="/mark-notif-read/{{$data['id_notif']}}" class="btn btn-primary">Отменить прочитанным</a>
</div>
</div>
<br>
@endforeach
</div>
</section>
Это нормальный способ? Какой есть по лучше?