Laravel 验证不会显示

问题描述 投票:0回答:1

我有一个带有

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'
,但不起作用。我想知道出了什么问题。

php laravel validation laravel-8 required
1个回答
0
投票

不应使用

'grade.*' => 'integer'
,而应使用
'grade.*' => 'required|integer'
来确保数组中的每个元素都存在并且是整数。

© www.soinside.com 2019 - 2024. All rights reserved.