#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 равно нулю, что означает, что пользователь удаляется. вы можете использовать один из следующих способов:
- отсортируйте поток, пользователя которого нет в контроллере:
Маршрут::get(‘/’, функция () { $threads = ПриложениеМоделиПоток::имеет(«пользователь»)->разбиение на страницы(15); вид возврата(«добро пожаловать», компактный(«потоки»)); });
- удалите тег, если пользователь не существует:
@forelse($threads как $thread) Опубликовано @if($thread->пользователь) пользователь->>имя)}}»>>>{{$поток->>>>пользователь->>>>>имя}} @еще один анонимный @endif {{$поток->>> > >>created_at->>>>>>> > Люди()}} @endforelse