I have a number input with type="number", and I give it a validation error for this grade input (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>
And here's validator in its controller:
$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.',
]
);
The problem is, the other inputs are working fine:
It should be showing message like "The grade field is required.".
I've tried to change the validation into 'numeric' or 'integer|digits_between:0,100', but it doesn't work. I wonder what's wrong.

Instead of using
'grade.*' => 'integer', you should use'grade.*' => 'required|integer'to ensure that each element in the array is both present and an integer.