$p
или $pst
(сбивающие с толку имена переменных) равно null
, и это потому, что ->first()
может вернуть null
. У вас есть Post
запись в вашей базе данных, которая соответствует slug
?
Правило большого пальца; никогда не предполагайте, что что-то существует .
Добавьте логи c, чтобы убедиться, что Post
существует, прежде чем пытаться получить доступ к его свойству:
$post = Post::where("slug", $slug)->first();
if(!$post){
abort(404);
}
return view('posts.show')->with('post', $post);
// OR
$post = Post::where("slug", $slug)->findOrFail(); // or firstOrFail();
return view('posts.show')->with('post', $post);
Также, проверьте $post->user
:
@if($post->user)
<img src="/uploads/avatars/{{ $post->user->avatar }}" width="70px" height="60px"/>
<span>{{ $post->user->name }}, <b>{{ $post->created_at->diffForHumans() }}</b></span></br>
@endif
Если $post->user
вернет null
, у вас будет похожая ошибка.