通过电子邮件和question_id分组

时间:2017-03-23 15:18:09

标签: laravel laravel-5 laravel-5.3 laravel-eloquent laravel-collection

我正在开发一个能够创建调查的小应用程序,并且在这些调查中有疑问,问题可以是一个简单的输入表单或复选框形式。

我的问题与多个值(无线电输入)有关,我有一个名为“答案”的表,具有上述结构:

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');

但它不起作用。

1 个答案:

答案 0 :(得分:1)

由于groupBy()方法接受多个参数并迭代它们:

public function groupBy(...$groups)
{
    foreach ($groups as $group)

这样做:

return $survey->answers->groupBy('email', 'question_id');