Как выдает статистику с laravel? - PullRequest
0 голосов
/ 03 сентября 2018

Я работаю над приложением laravel, которое немного похоже на тест. Вы создаете упражнение, вы добавляете вопросы и каждый вопрос к ответам. До этого все нормально. Мне интересно представлять статистику по каждому упражнению после того, как школьники ответили на тесты. Я хочу иметь возможность отображать процент ответов для каждого вопроса. Вот пример структуры данных, которые у меня есть:

[
{
    "id": 1,
    "exercice_id": 1,
    "question": "Lorem ipsum ?",
    "responses": [
        {
            "id": 1,
            "exercice_id": 1,
            "question_id": 1,
            "response_text": "Yes",
        },
        {
            "id": 2,
            "exercice_id": 1,
            "question_id": 1,
            "response_text": "No",
        }
    ],
    "choice": [
        {
            "id": 1,
            "exercice_id": 1,
            "question_id": 1,
            "response_id": 1,
        },
        {
            "id": 2,
            "exercice_id": 1,
            "question_id": 1,
            "response_id": 1,
        },
        {
            "id": 3,
            "exercice_id": 1,
            "question_id": 1,
            "response_id": 2,
        }
    ]
},
{
    "id": 2,
    "exercice_id": 1,
    "question": "fake text ?",
    "responses": [
        {
            "id": 3,
            "exercice_id": 1,
            "question_id": 2,
            "response_text": "A",
        },
        {
            "id": 4,
            "exercice_id": 1,
            "question_id": 2,
            "response_text": "B",
        },
        {
            "id": 5,
            "exercice_id": 1,
            "question_id": 2,
            "response_text": "C",
        }
    ],
    "choice": [
        {
            "id": 4,
            "exercice_id": 1,
            "question_id": 2,
            "response_id": 5,
        },
        {
            "id": 5,
            "exercice_id": 1,
            "question_id": 2,
            "response_id": 3,
        }
    ]
}
]

Я попробовал метод groupBy на нескольких элементах. но я еще не нашел формулу.

return response()->json(Question::with('responses','choice')
            ->where('exercice_id',$exo->id)
            //->groupBy('choice')
            ->get(),
            200,[], JSON_NUMERIC_CHECK);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...