laravel foreach 输入单选按钮显示不正确

laravel foreach input radiobutton displayed incorrectly

我正在尝试显示问题的选项。我有这样的问题:

@section('content')
<div class="card">
  <div class="card-header">Quiz: {{$category->name}}:</div>
  <div class="card-body">
    <form action="#" method="post" class="form-group">
      @csrf
      @foreach($questions as $key => $question)
        <div class="form-group">
          <label for="question">Question {{1+$key}}:</label>
          <p class="card-text">{{$question->question_text}}</p>
          @foreach($question->option_text as $key => $option)
            <input type="radio">{{$option}}
          @endforeach
        </div>
        @endforeach
      <div class="form-group">
        <input type="submit" class="btn btn-primary">
      </div>
    </form>
  </div>
</div>
@endsection

我可以同时检查所有单选按钮,但如果我为单选按钮命名,我只能检查整个问题的一个选项。我认为 foreach 循环有些奇怪。

信息:table "questions" 有以下行: id、category_id、question_text、correct_answer、option_text(这是一个被转换为数组的 json 字段)

来自控制器的代码:

public function store(Request $request, Category $category){
  if($request->categoryTest == $category->name){
    $questions = $category->question()->inRandomOrder()->get();
    return view('user.test', compact('questions', 'category'));
  }
}

你知道如何解决这个问题吗?谢谢!

这似乎是单选按钮的正常行为,当时只有一个是市场。您是否尝试过使用复选框?

此外,如果要将其发送到后端,则需要设置名称属性。神奇之处在于:不要使用单数名称,而是将其作为数组,以便在您的控制器上获得一个数组。

<input type="checkbox" name="question[]" class="btn btn-primary">

试试这个:

@section('content')
<div class="card">
  <div class="card-header">Quiz: {{$category->name}}:</div>
  <div class="card-body">
    <form action="#" method="post" class="form-group">
      @csrf
      @foreach($questions as $key => $question)
        @php
        $q = 1+$key
        @endphp
        <div class="form-group">
          <label for="question">Question {{1+$key}}:</label>
          <p class="card-text">{{$question->question_text}}</p>
          @foreach($question->option_text as $key => $option)
            <input name="radio-{{$q}}" type="radio">{{$option}}
          @endforeach
        </div>
        @endforeach
      <div class="form-group">
        <input type="submit" class="btn btn-primary">
      </div>
    </form>
  </div>
</div>
@endsection