Попытка получить свойство 'comments' не-объекта (View: / Applications / AMPPS / www/zenit/resources/views/middleware.blade.php) - PullRequest
0 голосов
/ 26 марта 2020

Я пытаюсь получить комментарии, относящиеся к проекту, опубликовал специальный пользователь, но получаю эту ошибку:

Пытается получить свойство 'комментарии' не-объекта (View: / Applications / AMPPS / www/zenit/resources/views/middleware.blade.php)

Я создал foreach l oop в middleware.blade. php следующим образом;

@foreach(Auth::user()->courses->comments as $comment)

В модели My Course я создал отношение hasManyThrough следующим образом

public function comments()
{
    return $this->hasManyThrough(Comment::class, Project::class, 'course_id', 'project_id', 'id', 'id');
}

В моей таблице проектов есть столбец course_id, а в таблице моих комментариев есть столбец project_id

Кто-нибудь может мне помочь? Заранее спасибо

1 Ответ

0 голосов
/ 26 марта 2020

Во-первых, будет лучше, если вы дадите своему отношению отношение к единственному имени, а не множественному числу, потому что оно извлекает только 1 объект:

public function course()
{
    return $this->belongsTo(Course::class);
}

А также в некоторых случаях $user->course может быть нулевым, поэтому у него не будет комментариев, поэтому просто проверьте этот случай, прежде чем l oop

// in some blade template
@if(auth()->user()->course)
    @foreach(auth()->user()->course->comments as $comment)
        {{ $comment->id }}
    @endforeach
@endif
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...