我有三个模型和相应的表格。用户,帖子,评论。 用户表的列是id,name,email。 帖子列表是id,title,body。 注释表的列是id,user_id,post_id,comment。
用户模型具有以下功能:
public function comments(){
return $this->hasMany('App\Comment');
}
Post model具有以下功能:
public function comments(){
return $this->hasMany('App\Comment');
}
评论模型具有以下两个功能:
public function user(){
$this->belongsTo('App\User');
}
public function post(){
$this->belongsTo('App\Post');
}
PostController中的单帖显示功能如下:
public function show($slug)
{
$post = Post::where('slug', $slug)->first();
return view('post.show')->withPost($post);
}
并在show.blade.php中尝试实现此功能:
@foreach($post->comments as $comment)
<p>
{{$comment->user->name}}
</p>
@endforeach
为什么抛出错误说关系方法必须返回一个对象?
答案 0 :(得分:0)
你需要return
关系,所以你的代码变成了:
public function user(){
return $this->belongsTo('App\User');
}
public function post(){
return $this->belongsTo('App\Post');
}