Laravel |以随机顺序选择测验问题,并为每个问题显示答案

时间:2018-11-28 12:02:05

标签: laravel eloquent

我正在使用foreach显示所有问题,并为答案显示一个问题。

他们两个都有一个question_id。

但是如何使用两个foreach循环使我的应用程序知道答案属于什么地方?

2 个答案:

答案 0 :(得分:0)

能否请您提供更多详细信息? 从您提供的一些信息中,我只能猜测...

#1:创建一个Answer模型

#2:在您的Question模型中添加与Answer模型的关系:

public function answers()
{
    return $this->hasMany(Answer::class);
}

#3:将所有问题与答案随机排序:

$questions = Questions::get();

foreach ($questions as $question) {
    // getting the answer of a specific question ordered by RAND
    $answers = $question->answers()->orderByRaw("RAND()")->get();

    foreach ($answers as $answer) {
        // here your answer
    }
}

有关Laravel关系的更多信息: https://laravel.com/docs/5.7/eloquent-relationships

答案 1 :(得分:0)

如果您以随机顺序显示问题,则创建一个数组$ random 显示问题后将存储question_id。 现在,为了显示答案,遍历该$ random数组并显示其question_id等于$ random [$ i]

的答案
foreach ($random as $ques_id)
    display the answer whose question_id is $ques_id