Laravel:从单选按钮获取和组合值

Laravel: getting and combining values from radio button

我目前正在制作一种 'quiz' 以根据用户给出的答案获得用户的启动器 class。基本上是性格测试。

这是我的表单示例

<div class="form-group">
            <h4>{{Form::label('title', 'Favourite season?')}}<br></h4>
            <div class="container">
                <div class="option">
                    Spring - {{Form::radio('q4', 1, false)}}<br>
                    Summer - {{Form::radio('q4', 2, false)}}<br>
                    Autumn - {{Form::radio('q4', 3, false)}}<br>
                    Winter - {{Form::radio('q4', 4, false)}}
                </div>
            </div>
        </div>

目前我的控制器是空的,因为我不确定如何获取每个值,然后将它们组合成最终结果

public function store(Request $request)
    {
        $this->validate($request, [
            'q1' => 'required',
            'q2' => 'required',
            'q3' => 'required',
            'q4' => 'required',
            'q5' => 'required',
            'q6' => 'required',
            'q7' => 'required',
            'q8' => 'required',
            'q9' => 'required',
            'q10' => 'required',
        ]);

        return $request;
    }
}

我的 post 正确地从输入中获取了值,我只需要知道如何将这些值转化为最终分数并将其存储到数据库中

我试过使用 JavaScript,但是我不知道如何将结果输入控制器以存储在数据库中。

好吧,您可以尝试将无线电输入命名为数组,这样您就可以一次检索值:

{{ Form::radio('q[3]', 1, false) }}
{{ Form::radio('q[3]', 2, false) }}
...


{{ Form::radio('q[4]', 1, false) }}
{{ Form::radio('q[4]', 2, false) }}
...

然后在您的控制器中,您可以将所有值放入一个数组中:

$values = $request->input('q', []);

然后你可以很容易地得到这个总和:

$sum = array_sum($values);

您可能想要进行一些验证,以确保您在特定值范围内获得正确数量的输入。