我有一个带有
type="number"
的数字输入,我为此等级输入给出了一个验证错误(nilai):
<div class="col-4">
<div class="form-group">
<label>Nilai <span class="text-danger">*</span></label>
<input type="number" id="grade" name="grade[]" class="form-control @error('grade') is-invalid @enderror" placeholder="Masukkan nilai" required>
@if (count($errors) > 0)
@error('grade')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
@else
<div class="invalid-feedback">Mohon isikan nilai</div>
@endif
</div>
</div>
这是控制器中的验证器:
$request->validate(
[
'student_id' => 'required|integer',
'nis' => 'required|integer',
'class' => 'required|string',
'major' => 'required|not_in:0',
'attitude_point' => 'required|array',
'attitude_point.*' => 'integer',
'competency_point' => 'required|array',
'competency_point.*' => 'string',
'grade' => 'required|array',
'grade.*' => 'integer',
'predicate' => 'required|array',
'predicate.*' => 'string',
],
[
'student_id.required' => 'The student name field is required.',
'grade.required' => 'The grade field is required.',
]
);
问题是,其他输入工作正常:
它应该显示类似“成绩字段是必填字段”的消息。
我尝试将验证更改为
'numeric'
或'integer|digits_between:0,100'
,但不起作用。我想知道出了什么问题。
不应使用
'grade.*' => 'integer'
,而应使用 'grade.*' => 'required|integer'
来确保数组中的每个元素都存在并且是整数。