" />
" />
"/>

Laravel validation won't show up

66 Views Asked by At

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:

validation for grade input wont show up

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.

1

There are 1 best solutions below

0
reza_qsr On

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.