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

Заранее спасибо.


Ответы (0 шт):