【问题标题】:Group by email and question_id按电子邮件和 question_id 分组
【发布时间】:2017-08-16 06:02:01
【问题描述】:

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

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

Answers (table):
- id;
- question_id;
- answer;
- email;

在我的一个后端页面中,我有一个表格,我在其中循环问题和答案。

工作正常,但问题是当我有多个值时,标题表(问题)开始少于列正文答案,这是因为答案的数量。

我使用 eloquent 和 collection 创建了这个查询,其中首先我 orderByGroup of 'email'。

$survey = Survey::find($id);

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

它为我提供了来自每封电子邮件的一组分组答案,这很棒,但现在我需要在电子邮件组中对问题进行分组,在我的情况下为“question_id”。但不适合我。

我尝试了类似的东西

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

但它不起作用。

【问题讨论】:

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


    【解决方案1】:

    由于groupBy() 方法接受多个参数并对其进行迭代:

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

    这样做:

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

    【讨论】:

    • 已经试过了,但是question_id相同的2条记录没有分组。
    猜你喜欢
    • 1970-01-01
    • 2023-01-28
    • 2011-09-09
    • 2013-07-13
    • 2015-05-03
    • 1970-01-01
    • 1970-01-01
    • 2021-02-06
    • 1970-01-01
    相关资源
    最近更新 更多