Laravel 5 - 验证规则中"有时"的真实含义

PGB*_*GBI 5 php laravel

在Laravel 5中,让我们考虑这两种不同的验证规则:

Validator::make($data, ['email' => 'sometimes|email']);
Run Code Online (Sandbox Code Playgroud)

Validator::make($data, ['email' => 'email']);
Run Code Online (Sandbox Code Playgroud)

测试后:

  • 如果$ data ['email']存在且是有效的电子邮件=>两者都会成功.
  • 如果$ data ['email']存在且不是有效的电子邮件=>两者都将失败.
  • 如果$ data确实有一个电子邮件密钥=>两者都会成功.

那么这两条规则有什么区别呢?"有时"的目的是什么?

Stu*_*ner 5

来自Laravel的验证文档:

在某些情况下,只有在输入数组中存在该字段时,您可能希望对字段运行验证检查.要快速完成此操作,请将sometimes规则添加到规则列表中.

因此,基本上,email只有在字段实际上是POST请求的一部分时才会进行验证.

这对于required规则尤其有用,如果该字段留空,则该字段将抛出错误,但sometimes只有在该字段存在于第一位时才会执行此操作.如果没有sometimes,缺少物理字段将始终导致"必填字段"错误.

这不是你经常需要的东西,但它是一个很好的小功能.