我正在创建一个博客,但是当用户登录意味着他们已通过身份验证时,我可以在我的信息中心看到帖子,但是,当我退出并重定向到信息中心时,我收到错误消息“试图获取非对象的财产........“
下面是我的代码
public function getDashboard() {
$posts = Post::orderBy('created_at', 'desc')->get();
return view('welcome, [
'posts' => $posts,
'user' => Auth::user()
]);
}
@foreach($posts as $post)
<div class="post-preview" data-postid="{{ $post->id }}">
<a href="#">
<h2 class="post-title">
{{ $post->header }}
</h2>
<h3 class="post-subtitle">
{{ $post->body }}
</h3>
</a>
<p class="post-meta">Posted by <a href="#">{{ $post->user->username }}</a> on {{ $post->created_at }}</p>
</div>
<hr>
@endforeach
请帮忙。
由于
答案 0 :(得分:0)
您只需要检查用户是否已登录
模板文件中的:
@if($user)
@foreach($posts as $post)
<div class="post-preview" data-postid="{{ $post->id }}">
<a href="#">
<h2 class="post-title">
{{ $post->header }}
</h2>
<h3 class="post-subtitle">
{{ $post->body }}
</h3>
</a>
<p class="post-meta">Posted by <a href="#">{{ $post->user->username }}</a> on {{ $post->created_at }}</p>
</div>
<hr>
@endforeach
@endif
或在控制器文件中:
public function getDashboard() {
$posts = Post::orderBy('created_at', 'desc')->get();
return view('welcome', [
'posts' => (Auth::user()) ? $posts : [],
'user' => Auth::user()
]);
}