Laravel - 防止对空输入进行验证检查

Posted

技术标签:

【中文标题】Laravel - 防止对空输入进行验证检查【英文标题】:Laravel - prevent validation check on empty inputs 【发布时间】:2017-08-10 18:54:15 【问题描述】:

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

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

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

【问题讨论】:

我猜你现在可以接受自己的答案了 【参考方案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'
];

【讨论】:

以上是关于Laravel - 防止对空输入进行验证检查的主要内容,如果未能解决你的问题,请参考以下文章

防止在 DataContractSerializer 中对空成员进行序列化

使用 Laravel 中的验证器检查两个表中两列的唯一性

Laravel:针对远程检查凭据的系统进行身份验证

Laravel 5.8:验证多个输入

如何检查用户是不是通过 Laravel 上的 cookie 会话进行身份验证?

颤振错误,对空值使用空检查运算符