Laravel - Как получить данные из другой таблицы отношений - PullRequest
0 голосов
/ 25 января 2019

У меня есть 4 таблицы, подобные этой:

quizzes
id | title

questions
id | question

question_quiz
id | quiz_id | question_id

question_options
id | question_id | option | is_answer

модель теста

/**
 * Get the questions for the quiz.
 */
public function questions()
{
    return $this->belongsToMany('App\Question');
}

модель вопроса

/**
 * Get the question options for the question.
 */
public function question_options()
{
    return $this->hasMany('App\QuestionOption');
}

Как таблица опросов может извлекать данные изтаблица вопросов-ответов?

Ответы [ 2 ]

0 голосов
/ 25 января 2019
Quiz::with('questions.question_options')->where('status', 'ACTIVE')->get();

Используя это, вы можете получить вопросы и опции-вопросы этого вопроса

и ответ будет

[
    {
        id: 1,
        title: quiz,
        questions: [{
            id: 1,
            question: question,
            question_options: [
                {
                    id: 1,
                    question_id: question,
                    option: option 1
                    is_answer: 1
                },
                {
                    id: 2,
                    question_id: question,
                    option: option 2
                    is_answer: 0
                },
                {
                    id: 3,
                    question_id: question,
                    option: option 3
                    is_answer: 0
                },
            ]
        }]
    }
]
0 голосов
/ 25 января 2019

Если у вас есть название модели для викторины, то это может вам помочь. Это даст вам все связанные варианты вопросов, которые относятся к викторине.

Quiz::with('questions.question_options')->get(); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...