调用未定义的方法App \ Post :: withCount()

时间:2017-10-15 12:50:39

标签: laravel laravel-5.5

我无法找到问题所在。我有postscomments表。在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);
}

我的错误在哪里?

2 个答案:

答案 0 :(得分:4)

我认为你已经在控制器而不是模型中定义了这些关系。 您应该在相应的模型中定义这些关系,然后它应该可以工作。

答案 1 :(得分:1)

在这种情况下,您应该使用hasMany关系:

class Post extends Model
{
    public function comments()
    {
        return $this->hasMany(Comment::class);
    }
}

然后这将起作用:

Post::withCount('comments')->get();