【问题标题】:Laravel get all posts that a user commented onLaravel 获取用户评论的所有帖子
【发布时间】:2018-08-16 01:56:55
【问题描述】:

我有 3 个名为 UserPostComment 的模型,这些模型是相关的。

用户模型:这个模型有很多帖子模型。

帖子模型:这个模型属于用户模型,有很多评论模型。

评论模型:该模型属于帖子模型和用户模型。

现在的问题是如何获取用户评论的所有帖子?

【问题讨论】:

  • 查看whereHas 功能。
  • @ceejayoz 我想要帖子... whereHas 在这种情况下没有帮助
  • 肯定会的。类似于Post::whereHas('comment', function($query) use($user) { $query->whereUserId($user->id); });

标签: php laravel eloquent


【解决方案1】:

添加到用户

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

User::find(1)->comments->map(function ($comment) { return $comment->post; })->unique();

【讨论】:

    【解决方案2】:

    whereHas 就是你要找的东西:

    $posts = Post::whereHas('comment', function($query) use($user) {
        $query->whereUserId($user->id);
    })->get();
    

    $user 将是您感兴趣的用户。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-14
      • 2012-04-12
      • 2017-04-03
      • 1970-01-01
      • 1970-01-01
      • 2010-09-22
      • 2021-03-03
      • 2017-03-03
      相关资源
      最近更新 更多