Laravel Как правильно сделать условие вывода кнопок для списка комментариев на разные модели типа Post и Event
Подскажите пожалуйста. В личном кабинете пользователя есть список комментариев, у каждого комментария есть кнопка просмотра, т.е. при переходе из комментария нужно попасть в пост или событие. Не могу понять как такое реализовать с помощью условий.
Controller: IndexController
В данном контроллере код с условием предложил ИИ.
class IndexController extends BaseController
{
public function index(User $user, Post $post, Event $event)
{
$comments = auth()->user()->comments()->paginate(10);
if ($comments->count() > 0) {
foreach ($comments as $comment) {
if ($comment->type == 'post') {
$post = Post::find($comment->id);
} else if ($comment->type == 'event') {
$event = Event::find($comment->id);
}
}
} else {
// Нет комментариев
}
return view('personal.comment.index',compact('comments', 'post', 'event'));
}
}
Blabe: commetn/index.blade.php
С таким условием @if($event) и @elseif($post)
При переходе по маршруту выводиться только первый маршрут $event, второй тоже показывается и правильно казыает {slug} поста, но по первому маршруту event/{slug}, а необходимо чтобы при переходе от комментария к посту, переход осуществлялся именно к посту по маршруту post/{slug}. И происходит ошибка.
Attempt to read property "meta_title" on null
@foreach($comments as $comment)
<tr>
<th scope="row">{{$comment->id}}</th>
<td>{{$comment->message}}</td>
<td>{{date('d-m-Y')}}</td>
<td>
<span>{{$comment->commentable->getTable()}}</span>
{{$comment->commentable->title}}
</td>
<td>
<div class="btn-group">
@if($post)
<a href="{{route('event.show', $comment->commentable->slug)}}" class="btn btn-info"><i
class="text-white bi-eye-fill"></i>
</a>
@elseif($event)
<a href="{{route('post.show', $comment->commentable->slug)}}" class="btn btn-info"><i
class="text-white bi-eye-fill"></i>
</a>
@else
@endif
<a href="{{route('personal.comment.edit', $comment->id)}}" class="btn btn-success"><i
class="bi bi-pencil-square"></i>
</a>
<form action="{{route('personal.comment.delete', $comment->id)}}" method="POST">
@csrf
@method('DELETE')
<button type="submit" onclick="return confirm(('Вы уверены?'))" class="btn btn-danger">
<i class="bi bi-trash-fill"></i>
</button>
</form>
</div>
</td>
</tr>
@endforeach
Заранее спасибо.