【发布时间】:2018-03-12 19:24:31
【问题描述】:
所以我有包含Stack 的Subject,其中包含Question。每个问题都有答案,我想统计每个Stack的答案,但我卡住了。
这是我正在尝试做的,我一直在摆弄的众多解决方案之一:
$subjects = Subject::with(['stack.question', 'stack.answersCount'])->get();
return $subjects;
Subject 模型有如下关系:
public function stack(){
return $this->hasMany(Stack::class);
}
如果我们看一下Stack 模型中的关系是如何建立的:
public function question(){
return $this->hasMany(Question::class);
}
public function answers(){
return $this->hasMany(Answers::class);
}
public function answersCount(){
return $this->answers()->selectRaw('answer, count(*) as aggregate')->groupBy('answer');
}
但是当我return $subjects时,answer_count是空的。
"answers_count": []
这很令人困惑,因为当我在 SQL 中运行相同的查询时,我得到非空结果。
select answer, count(*) as aggregate from `answers` where `answers`.`stack_id` in ('1', '6') group by `answer`
correct 9
wrong 4
那么我如何计算所有答案呢?并将它们分组?
【问题讨论】:
标签: php laravel laravel-5 eloquent