Я делаю проверку для форм.У меня есть ввод для текста вопроса и 4 формы ввода для 4 ответов с переключателями и ввод числа для точек.
Если я проверю эти формы, пользователь должен будет создать 4 ответа в БД, но что, если пользователь будетхранить только 3?Как проверить таким образом?Теперь он показывает ошибку, что поля обязательны для заполнения, если я пытаюсь сохранить 3 ответа.
Моя проверка
public function store(Test $test, Request $request)
{
$this->validate($request, [
'text' => 'required',
'point' => 'required',
'correct' => 'required'
]);
$question = new Question();
if($request->has('picture')) {
$question->picture = $request->file('picture')->get();
}
$question->text = $request->input('text');
$question->test_id = $test->id;
$question->save();
foreach ($request->input('answer') as $_index => $_answer)
{
if ( $_answer['text'] ) {
$answer = new Answer();
$answer->text = $_answer['text'];
$answer->point = $_answer['point'];
$answer->correct = ($request->input('correctanswer') == $_index) ? 1 : 0;
$answer->question_id = $question->id;
$answer->save();
}
}
Клинок
{!! Form::open(['route' =>
['question.store', $test->id],
'class' => 'form',
'method' => 'post',
'enctype' => 'multipart/form-data'
]
) !!}
<div class="form-group">
{!! Form::label('text', 'Question text') !!}
{!! Form::text('text', '', ['class' => 'form-control', 'placeholder' => '', 'required' => 'required'] ) !!}
</div>
<div class="form-group">
{!! Form::label('picture', 'picture') !!}
{!! Form::file('picture', ['class' => 'form-control']) !!}
</div>
<?php
for($answers_counter = 0; $answers_counter < 4; $answers_counter++) {
?>
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">Answer{{ $answers_counter + 1 }}</span>
<div class="input-group-text">
<input type="radio" name="correctanswer" id="answer[{{ $answers_counter }}]" value="{{ $answers_counter }}" placeholder="Answer{{ $answers_counter + 1 }}">
</div>
</div>
{!! Form::text('answer[' . $answers_counter . '][text]', '', ['class' => 'form-control']) !!}
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text" id="basic-addon1">Points</span>
</div>
{!! Form::number('answer[' . $answers_counter . '][point]', '', ['class' => 'form-control']) !!}
</div>
</div>
<?php
}
?>
Может ли кто-нибудь помочь мне, пожалуйста?Спасибо!