я использую Laravel Commentable который использует Baum
Почтовая модель
class Post extends Model
{
use Commentable;
....
Моя модель имени пользователя пользователь
Структура таблицы комментариев:
user_id
хранит идентификатор пользователя, который прокомментировал, commentable_id
хранит идентификатор сообщения, в котором был размещен комментарий.
Комментарии работают как положено.
Я могу вставлять комментарии, удалять комментарии.
Для отображения комментариев:
$comments = Comment::orderBy('id', 'desc')->get();
@foreach($comments as $comment)
{{ $comment->user->name }} : {{ $comment->body }}
@endforeach
Это дает мне имя и комментарий пользователя в представлении.
Вопрос:
Как получить атрибуты модели поста из комментария?
{{ $comment->post->slug }}
<-это не работает
По коду из этого пакета, Вы должны использовать commentable
связь. Тем не менее, нет никакого способа быть уверенным, что это будет Post
модель, это может быть любая модель, которая является комментируемой.
Пример, который проверяет, действительно ли комментируемый объект post, и показывает слаг, если это так:
@if ($comment->commentable_type === \App\Post::class)
{{ $comment->commentable->slug }}
@endif
Других решений пока нет …