Laravel 7 使 'Integer' 当输入为空时显示验证消息,即使它不是必需的

Laravel 7 Makes 'Integer' Validation message appears when the input is null even though it is not required

Laravel输入为空时弹出整数验证信息

查看

   <div class="form-group">
                            <label>Sipërfaqja(Metra Katror)</label>
                            <input type="number" name="area" value="{{old('area')}}"
                                   class="form-control form-control-border @error('area') is-invalid @enderror "
                                   placeholder="220">

                            @if($errors->has('area'))
                                <div style="color: red">{{ $errors->first('area') }}</div>
                            @endif
  </div>

控制器

 $rules = [

'area' => 'integer',
];

$messages = array(

       'area.integer' => 'Area should be integer value',
);

我保留输入为空,但前端出现此消息区域应为整数值

如 Laravel doc:

By default, Laravel includes the TrimStrings and ConvertEmptyStringsToNull middleware in your application's global middleware stack. These middleware are listed in the stack by the App\Http\Kernel class. Because of this, you will often need to mark your "optional" request fields as nullable if you do not want the validator to consider null values as invalid.

因此,您的代码应如下所示:

$messages = array(

       'area.integer' => 'nullable|integer',
);