“此集合实例上不存在属性[body]

时间:2019-02-21 06:26:33

标签: php laravel laravel-blade

我正在创建一个博客,它存在一些奇怪的问题。我在评论和帖子模型之间使用了OneToMany连接(一个帖子可以有很多评论) 在帖子模型上:

public function comments(){
    return $this->hasMany('App\Comment');
}

和评论模型:

public function Posts(){
    return $this->belongsTo('App\Posts');
}

现在我遇到的问题在 show.blade.php 中,它从控制器的show()方法接收来自控制器的数据,并返回有关帖子的数据。

public function show($id)
{
   $post = Posts::find($id);
   return view('posts.show')->with('post', $post);
}

从刀片模板中,我正在显示与该帖子从acc到postid相关的评论

<div class="card-body">
     <h5 class="card-title"><strong>test comment:</strong></h5>
     <p class="card-text">{{$post->comments->body}}</p>
</div>

当我在刀片拆卸机构中显示注释时,我得到以下信息: data from comments table

我尝试了$post->comments->body,但出现错误 这有什么问题,建议会得到赞赏

1 个答案:

答案 0 :(得分:8)

comments是您需要遍历

的集合实例
@foreach($post->comments as $comment)
 <p class="card-text">{{$comment->body}}</p>
@endforeach

或者带有单个注释 {{$post->comments[key]->body}}用索引之类的键替换

{{$post->comments[0]->body}}