Как правильно сделать условие вывода кнопок для списка комментариев на разные модели типа Post и Event

Подскажите пожалуйста.

В личном кабинете пользователя есть список комментариев, у каждого комментария есть кнопка просмотра, т.е. при переходе из коммнтераия нужно попасть в пост или событие. Не могу понять как такое реализовать с помощью условий.

Controller: IndexController

В данном контроллере код с условием предложил ИИ.

class IndexController extends BaseController
{
    public function index(User $user, Post $post, Event $event)
    {
//        $post = Post::find(1);
//        $event = Event::find(1);
//        dump($post->comments);
//        dump($post->comments());
//        $comments = auth()->user()->comments()->paginate(10);
        $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 {
            // Нет комментариев
        }
//        $user = auth()->user();
//        $comments = $user->comments()->paginate(10);


        $categories = Category::all();
        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)
            
                {{$comment->id}}
                {{$comment->message}}
                {{date('d-m-Y')}}
                
                    {{$comment->commentable->getTable()}}
                    {{$comment->commentable->title}}
                
                
                    
@if($event) @elseif($post) @endif
@csrf @method('DELETE')
@endforeach

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

0 ответов

Другие вопросы по тегам