【问题标题】:Laravel - prevent validation check on empty inputsLaravel - 防止对空输入进行验证检查
【发布时间】:2026-02-17 12:05:01
【问题描述】:

表单中有一些输入字段,这是我在模型中定义的规则:

  public static $rules = [
    'name' => 'string',
    'email' => 'email',
    'phone' => 'sometimes|numeric',
    'mobile' => 'numeric',
    'site_type_id' => 'integer'
];

它们都不是必需的。但是当提交表单时,会出现验证错误,即电子邮件应该是电子邮件地址,其他输入也是如此。
在这种情况下,有一个字段 required 是没有意义的,因为 laravel 总是根据规则验证字段。
我知道提交表单时,空字段有null 值。我应该如何防止空字段的字段验证?

【问题讨论】:

  • 我猜你现在可以接受自己的答案了

标签: php laravel validation laravel-5


【解决方案1】:

Laravel 5.3 以上nullable 可用于可选字段:

https://laravel.com/docs/validation#rule-nullable

如果您不希望验证器将空值视为无效,您通常需要将“可选”请求字段标记为可空

所以rules 数组应该是这样的:

public static $rules = [
    'name' => 'nullable|string',
    'email' => 'nullable|email',
    'phone' => 'nullable|numeric',
    'mobile' => 'nullable|numeric',
    'site_type_id' => 'nullable|integer'
];

【讨论】: