フォームに配列名を使用しました。以下に示すコントローラ機能にルーティングされます。私は、コントローラに取得しようとしています配列名を取得する
<form method="POST" action="{{url('quiz/check')}}"
{!! csrf_field() !!}
@foreach ($quiz as $q)
@if($q->level=='1')
{{ $q->qid }}.
{{ $q->question }}<br>
<input type='radio' name='mycheck[{{$q->qid}}]' value='1'>
{{ $q->opt1 }}<br>
<input type='radio' name='mycheck[{{$q->qid}}]' value='2'>
{{ $q->opt2 }}<br>
<input type='radio' name='mycheck[{{$q->qid}}]' value='3'>
{{ $q->opt3 }}<br>
<input type='radio' name='mycheck[{{$q->qid}}]' value='4'>
{{ $q->opt4 }}<br><br>
@endif
@endforeach
<button type="submit" class="btn btn-default">Get result</button>
</form>
:
public function check(Request $request)
{
$count=0;
$input=$request->all();
$mycheck=$input['mycheck'];
$ch = DB::select('select * from quiz where category="gk" ');
return View('quiz.check',['quiz'=>$ch,'input'=>$input,'count'=>$count]);
}
ビューファイルになりましたcheck.blade.php
Results:
@foreach ($quiz as $q)
@if(array_key_exists($q->qid, $mycheck) && $mycheck[$q->qid]==$q->answer)
{{$count=$count+1}}
@endif
@endforeach
You scored {{$count}}.
、私はこのエラーを取得しています:
undefined variable: mycheck in view file
これは「配列名」ではありません。 "配列名"は 'foo []'または 'foo [bar]'です。あなたが持っているものは、その中にアンダースコアを持つ普通の古い名前です。 – deceze
コントローラで '$ mycheck' varを使っているのは何ですか?実際に 'mycheck_1'のように見えるときにインデックス 'mycheck'を取得しようとしているので、このエラーが発生しています。 –
また、ビューファイル内の@ifの中には、すでにphpであるため、二重中括弧を使用することはできません。実際にあなたが何を求めているのかは分かりません。 –