当前位置: 首页 > 知识库问答 >
问题:

雄辩的计数嵌套关系与嵌套渴望加载

郭元凯
2023-03-14

你一定看过下面的功能(在facebook上),一个有一些评论的帖子,每个评论都有一个类似的计数器。

https://img4.hostingpics.net/pics/67853820170616003640LaravelNewsAccueil.png

在拉雷维尔,这将是类似的

  • 帖子有很多评论
  • 以下评论发布
  • 类似于用户的评论
  • CommentLike belong评论
  • 评论有很多类似的评论

所以,现在我想得到10篇评论文章,每个评论都有一个类似的计数器。

Post::with('comments')->withCount('comments.likes')->take(10)->get();

这根本不起作用。

Post::with('comments')->withCount('comments')->take(10)->get();

这计算了每个帖子的所有评论,我想计算每个帖子的所有赞。

共有3个答案

李宁
2023-03-14

我假设CommentLike表示comment\u likes

Post::with('comments' => function($query){
    $query->select('comment_likes.*')
          ->join('comments', 'comments.id', '=', 'comment_likes.comment_id')
          ->groupBy('comments.id')    
          ->havingRaw('sum(comment_likes.id) as likes')
}])->take(10)->get();
饶德元
2023-03-14

这个问题的其他答案是正确的,但似乎有一个打字错误。他们都忘记了注释之前的起始“[”,所以正确的代码片段如下:

Post::with(['comments' => function($query){

   $query->withCount('likes');

}])->take(10)->get();
鱼志诚
2023-03-14

试试这个

Post::with(['comments' => function($query){
   $query->withCount('likes');
}])->take(10)->get();
 类似资料:
  • 我有以下三个表格: 帖子 帖子: 评论: 标签: Post表有许多注释,comments表有许多与之关联的标记。 如何使用“快速加载”将所有这些表组合在一起? 比如: 但是这个查询总是在标记关系中返回空响应。 我做错了什么? 期望的结果是这样的: 你可以看到帖子里面包含评论,评论里面也包含标签关系。 另外,我在我的项目中使用了“jenssegers/laravel mongodb”包,我试图在没有

  • 拉威尔说: 我需要的是这样的东西 我们可以在一个关系中加载多个关系。 这有可能吗?

  • 问题内容: 对于拍摄特定的对象我有目标的一个在线竞赛 用户 上传 图片 的 对象 ,其中对象具有 类别 和 子类别 。 用户的仪表板应如下所示: 为了能够在适当的循环中输出图片,我在模型之间安装了 hasMany 关系。所以我可以通过以下方式获得具有方便层次结构的对象 问题: 对于仪表板,我当然只希望来自某个用户的图像: Pictures 模型包含一个 user_id 字段。我可以直接获取用户的图

  • 我对雄辩的质询有意见。我正在使用渴望加载(一对多多态关系)来排序“historyable”。日期见下文。 我试着得到这样的结果 是否有可能运行嵌套懒惰渴望加载Laravel? 产品型号 历史模型 产品控制器 我有这样的数据库

  • 问题内容: 我在laravel中很难建立起非常嵌套的关系。 所需的行为如下, 我通过ID选择一个事件,我想查看哪些人已订阅该事件。 现在的问题是事件和人员之间有一些表格。 这是有效的查询! 事件模型 城市模型 公司模式 人物模型 我尝试过的 和 还有很多其他可能性,我真的很坚持。在laravel中实现这种嵌套关系链接如此困难吗? 谢谢! 问题答案: 如果只想从表中选择某些字段,请使用以下命令:

  • 在之前,创建一个有依赖其他模型的模型的时候,我们需要提前把依赖的模型给建立好,这样就非常麻烦,是不是有那么一种方法,在一个 create 里面把其他的依赖模型一起新建出来呢? 这一小节就来解决这个问题。这其中有一个坑(关于命名),让我调试的头皮发麻。 Book 与 User 的 belongs 关系 1. 保存关系 来到 book.ts , 首先保存一下 this.belongsTo 的返回值,在