我正在开发一个能够创建调查的小应用程序,并且在这些调查中有疑问,问题可以是一个简单的输入表单或复选框形式。
我的问题与多个值(无线电输入)有关,我有一个名为“答案”的表,具有上述结构:
Answers (table):
- id;
- question_id;
- answer;
- email;
在我的一个后端页面中,我有一个表格,我循环问题和答案。
工作正常,但问题是当我有多个值时,标题表(问题)开始少于coluns正文答案,这是因为答案的数量。
我使用eloquent和collection创建了这个查询,其中首先是orderByGroup的'email'。
$survey = Survey::find($id);
return $survey->answers->groupBy('email');
它为每个电子邮件提供了一系列分组答案,这很棒,但现在我需要在电子邮件组内部分组问题,在我的案例中为'question_id'。但是不适合我。
我试过像
这样的东西 return $survey->answers->groupBy('email')->groupBy('question_id');
但它不起作用。
答案 0 :(得分:1)
由于groupBy()
方法接受多个参数并迭代它们:
public function groupBy(...$groups)
{
foreach ($groups as $group)
这样做:
return $survey->answers->groupBy('email', 'question_id');