无法存储多项选择题的数据。 (非法字符串偏移 'answer')

Can't store data from multiple choice questions. (Illegal string offset 'answer')

我在尝试存储多项选择题的结果时遇到了一些困难。所以我有 2 tables [问题] 和 [答案]。所有问题都存储在问题table中,当我想显示时,我有这个

{{!!Form::open(...)!!}}
@foreach ($questions as $question)

<div>{{$question->question}}</div>
     <div class="form-group">
         {!! Form::label('answer', 'Score') !!}
        {{ Form::selectRange(' answer[]', 1, 10) }}
        {{ Form::hidden('question_id[]', $question->id) }}
        {{ Form::hidden('user_id[]', $userId) }}
</div>
@endforeach
{{!!Form::submit(...)!!}}
{{!!Form::close()!!}}

好的,所以我也传递了 question_id 和 user_id,这对所有问题都是一样的。我的控制器看起来像这样。

public function store(Request $request)
{
    $arr_answers = $request->all();

    foreach ($arr_answers as $row) {

    QuestionResults::create([
            'answer' => $row['answer'],
            'question_id' => $row['question_id'],
         'user_id' => $row['user_id'],
      ]);
 }

return "working";

$arr_answers returns 3 个数组,答案,question_id 和 user_id,都有正确的信息,所以我的思考过程是 foreach循环应该 return 每个值的 int 但不幸的是它没有玩球并且 returning "Illegal string offset".

请有人指出解决方案或更好的方法。

我不知道 Laravel,但 $arr_answers 很可能返回结构为 $_POST 数组的 3 个子数组和一个提交。所以通过相同的键访问 3 个数组:

foreach ($arr_answers['answer'] as $key => $row) {

    QuestionResults::create([
        'answer'      => $row,
        'question_id' => $arr_answers['question_id'][$key],
        'user_id'     => $arr_answers['user_id'][$key],
    ]);
}