我创建了一个帖子表&评论表的帖子评论。 我想用他们的评论来发表我的帖子......
在我的帖子模型中:
public function comments()
{
return $this->hasMany('App\Comment');
}
在我的评论模型中:
public function post()
{
return $this->belongsTo('App\Post');
}
这是我的控制器:
public function show($ID)
{
try {
$post = Post::findOrFail($ID);
$comments = Post::find($ID)->comments;
$randomPosts = Post::all()->random(3);
return view('show', compact('post','comments','randomPosts'));
} catch (ModelNotFoundException $e) {
$posts = Post::orderBy('ID', 'DESC')->paginate(5);
return view('welcome', compact('posts'));
}
}
但是我收到了这个错误: 未定义属性:Illuminate \ Database \ Eloquent \ Collection :: $ ID
我的问题是什么?
答案 0 :(得分:0)
您需要将$ ID变量分配给您要检索帖子的ID
例如,假设你想要一个id为1的帖子及其评论。
首先,您可以检索第一篇文章的评论,如下所示:
$comments = App\Post::find(1)->comments;
foreach ($comments as $comment) {
echo $comment
}
当然你可以检索帖子代表一条评论。
例如,发表第一条评论的帖子:
$comment = App\Comment::find(1);
echo $comment->post->title;