- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下模型:
问题:[title, user_id]
回复:[body, question_id, user_id]
用户:[姓名]
如你所见,一个问题有很多回复,一个回复属于一个用户。
我已将贡献者 关系添加到问题 模型,该模型检索所有已添加回复的用户(使用回复作为连接表):
public function contributors()
{
return $this->belongsToMany(User::class, 'replies')->distinct('user_id');
}
我必须使用 distinct()
来删除重复项,因为用户可能会针对一个问题发布许多回复,而这工作正常。
当我这样做时,问题就出现了:
Question::withCount('contributors')->get()
它忽略了对 distinct()
的调用,并为我提供了已添加回复(包括重复回复)的用户总数。
知道如何解决这个问题吗?
最佳答案
从关系中删除 distinct()
并使用带有原始表达式的 withCount()
:
public function contributors()
{
return $this->belongsToMany(User::class, 'replies');
}
Question::withCount(['contributors' => function ($query) {
$query->select(DB::raw('count(distinct(user_id))'));
}])->get();
关于laravel - 在具有 distinct() 的关系上使用 withCount(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55994722/
我有一个函数 allArticlesCount,它计算所有有 draft 1 的文章。 $allArticlesCount = Article::where('draft', 1)->count();
我有一个函数 allArticlesCount,它计算所有有 draft 1 的文章。 $allArticlesCount = Article::where('draft', 1)->count();
统计关联数量,单个用法 ? 1
我有多个 hasMany 关系,我只想要最后一个表的行数。 用户可以在特定日期和时间注册研讨会,因此关系看起来像“Workshop”-> hasMany 'Date' -> hasMany 'Time
如何在 withCount() 上运行子查询? 我有一个查询要针对多个计数运行,每个计数都有自己的子查询。 这是我正在寻找的东西的示例: $date_from = Carbon::parse('1/1
如何在 withCount() 上运行子查询? 我有一个查询要针对多个计数运行,每个计数都有自己的子查询。 这是我正在寻找的东西的示例: $date_from = Carbon::parse('1/1
我正在尝试对关系中的关系使用 withCount()。我收到的错误是 Method Illuminate\Database\Query\Builder::forums.threads does not
我有以下模型: 问题:[title, user_id] 回复:[body, question_id, user_id] 用户:[姓名] 如你所见,一个问题有很多回复,一个回复属于一个用户。 我已将贡献
我有一个表,其中有一列 is_up_vote = true|false 我正在尝试使用 withCount() 编写一个查询,以便它返回真值和假值的总和。 从 comment_votes 中选择 CO
我正在寻找 Eloquent 或原始 sql 来获取我的两个 ->withCount 的总和。我需要能够做到这一点 而无需 必须 ->get() 记录,它需要使用 Eloquent 来实现,而不是 l
我需要计算来自相同关系的两个不同条件的结果,但它以相同的名称返回。 Model::where('types_id', $specialism_id) ->withCount(['req
我正在尝试在 Eloquent withCount() 方法中使用父关系的枢轴变量。 背景: 有一个在用户和集群之间具有多对多关系的应用程序。用户可以在集群内发送消息。为了跟踪特定集群中用户的未读消息
我有 3 个模型:Vehicle、Dealer 和 Province Eloquent关系如下: Vehicle belongsTo Dealer Dealer hasMany Vehicles Pr
我希望 withCount 包含不存在关系的计数。 例如,假设我有一个名为 people 的表和一个名为 pets 的表。 people 有许多 pets,但 pets 可以有一个 null peop
我有一个users型号和 comments现在我要选择users关系超过100 comments为此,我正在这样做: $users = User::withCount('comments')->hav
所以我问这个的原因是,在我当前的应用程序 withCount() 中,响应时间几乎是通过 with() 获取关系的所有数据的三倍并从前端(javascript)获取长度。我认为使用 withCount
我正在尝试使用这段代码在 laravel 的 Eloquent 查询构建器的 withCount 方法上做一个 where 子句。 $posts = Post::withCount('upvotes'
模型结构如下 教程 -> (hasMany) 章节 -> (hasMany) 视频 我们如何使用 laravel 5.3 的 withCount() 方法从教程模型加载视频数 (video_count
使用 Laravel/Lumen eloquent 我可以得到这样的计数关系: User::withCount('views')->get(); 这将使用 SQL select `users`.*,
我有一个 酒店模型有很多 客房可以是 已占用 .我应该如何查询: 酒店列表 房间数 占用房间数 查询: $hotels = Hotel::where('foo',$bar) ->withCount('
我是一名优秀的程序员,十分优秀!