我无法找到问题所在。我有posts
和comments
表。在comments
表中,我添加了foreign key
post_id
。现在,我希望在收到所有帖子的同时获得评论。
这是我的PostController
public function show_api()
{
return $this->withCount('comments')->get();
}
public function comments()
{
return $this->hasManyThrough(Comment::class);
}
在CommentController
public function post()
{
return $this->belongsTo(Post::class);
}
我的错误在哪里?
答案 0 :(得分:4)
我认为你已经在控制器而不是模型中定义了这些关系。 您应该在相应的模型中定义这些关系,然后它应该可以工作。
答案 1 :(得分:1)
在这种情况下,您应该使用hasMany
关系:
class Post extends Model
{
public function comments()
{
return $this->hasMany(Comment::class);
}
}
然后这将起作用:
Post::withCount('comments')->get();