2017-04-20 115 views
0

我试图在我的应用程序中注册,但发生了此错误,我不知道为什么。 enter image description here尝试在laravel 5.4中获取非对象错误的属性

和我post.blade.php文件中有这样的代码:

<div class="blog-post"> 
<h2 class="blog-post-title"> 

    <a href="/posts/{{$post->id}}"> 

     {{$post->title}} 

    </a> 

</h2> 


<p class="blog-post-meta"> 

    {{$post->user->name }} 
    {{$post->created_at->toFormattedDateString()}} 


</p> 

{{$post->body}} 

PostController中有这样的代码:

public function index() 

    { 
     $posts=Post::latest()->get(); 

    return view('posts.index',compact('posts')); 
    } 

和索引文件是:

@foreach($posts as $post) 
     @include('posts.post') 
    @endforeach 

    <nav class="blog-pagination"> 
     <a class="btn btn-outline-primary" href="#">Older</a> 
     <a class="btn btn-outline-secondary disabled" href="#">Newer</a> 
    </nav> 

</div><!-- /.blog-main --> 
+0

您是否从控制器传递'$ post'? –

+0

检查您是否传递$ post变量。 –

+0

您确定created_at实际上是发送$ post吗? – Frenus

回答

1

我觉得你的代码需要更新,如:

public function index() 
{ 
    $posts=Post::with('users')->latest()->get(); 
    return view('posts.index',compact('posts')); 
} 

<p class="blog-post-meta"> 
    {{$post->users->name }} 
    {{$post->created_at->toFormattedDateString()}} 
</p> 

希望这对你的工作!

+0

我检查了你的答案,但是这个错误发生了:调用模型[App \ Post]上的未定义关系[用户]。 –

0

我假定您在index.blade.php文件中包含post.blade.php

在上述情况下,您未通过$postpost.blade.php。你foreach循环就会像:

@foreach($posts as $post) 
    @include('posts.post', ['post' => $post]) 
@endforeach 
+0

它不适用于我 –

+0

@HanieAsemi你可以'dd()''$ post'。 –

+0

我在哪里添加这个方法? –

0

假设你要包括在index.blade.php文件post.blade.php。

在上面的情况下,您没有将$ post传递给post.blade.php。你的foreach循环将是这样的:

@foreach($posts as $post) 
    @include('posts.post', ['post' => $post]) 
@endforeach 
+0

我想这个错误是在用户,因为其他帖子对象目前工作 –

+0

你尝试了我的方式回答?? –

+0

是的,但它不适用于我 –

相关问题