Laravel 8: Попытка получить свойство » имя » не-объекта при возврате результатов

#php #laravel #laravel-8

Вопрос:

Я работаю с Laravel 8 над разработкой своего проекта, который представляет собой онлайн-форум.

И вот мой маршрут в / ури:

 Route::get('/', function () {
    $threads = AppModelsThread::paginate(15);
    return view('welcome', compact('threads'));
});
 

И на welcome лезвии:

 @section('content')
    @include('thread.partials.thread-list')
@endsection
 

И в thread-list , я добавил это:

 @forelse($threads as $thread)
Posted by <a href="{{route('user_profile',$thread->user->name)}}">{{$thread->user->name}}</a> {{$thread->created_at->diffForHumans()}}
@endforelse
 

Но почему-то я получаю эту ошибку:

Исключение ErrorException Пытается получить свойство » имя » не-объекта (Вид: thread-list.blade.php)

Так что же здесь происходит не так ? Как я могу исправить эту проблему ?

Я был бы очень признателен за любую идею или предложение от вас, ребята…

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

Комментарии:

1. Вы пытаетесь получить доступ к имени пользователя, но разве пользователь не является просто полем в таблице потоков? Например, удостоверение личности?

2. добавьте в свой вопрос код отношения модели и имя файла базы данных.

Ответ №1:

Это связано с тем, что значение $thread->user равно нулю, что означает, что пользователь удаляется. вы можете использовать один из следующих способов:

  1. отсортируйте поток, пользователя которого нет в контроллере:

    Маршрут::get(‘/’, функция () { $threads = ПриложениеМоделиПоток::имеет(«пользователь»)->разбиение на страницы(15); вид возврата(«добро пожаловать», компактный(«потоки»)); });

  2. удалите тег, если пользователь не существует:

    @forelse($threads как $thread) Опубликовано @if($thread->пользователь) пользователь->>имя)}}»>>>{{$поток->>>>пользователь->>>>>имя}} @еще один анонимный @endif {{$поток->>> > >>created_at->>>>>>> > Люди()}} @endforelse