来自文档:
在某些情况下,您可能希望针对 仅当该字段存在于输入数组中时才使用该字段。要快点 要实现此目的,请将“有时”规则添加到您的规则列表中
https://laravel.com/docs/5.2/validation#conditionally-adding-rules
如果我可以简化它,我会说
sometimes
的意思是,仅当该字段出现在请求中时才应用其余的验证规则。想象一下 sometimes
就像一个 if 语句,在应用任何规则之前检查请求/输入中是否存在该字段。
当页面上有一些 javascript 会“禁用”字段时,我会使用此规则,因为当字段被禁用时,它不会显示在请求中。如果我只是说 required|email
验证器总是会应用规则,而使用
sometimes
规则只会在该字段出现在请求中时应用验证!希望这是有道理的。示例:
input: []
rules: ['email' => 'sometimes|required|email']
result: pass, the request is empty so sometimes won't apply any of the rules
input: ['email' => '']
rules: ['email' => 'sometimes|required|email']
result: fail, the field is present so the required rule fails!
input: []
rules: ['email' => 'required|email']
result: fail, the request is empty and we require the email field!
这意味着验证三个规则
sometimes
email
字段,则应用另外两个规则验证,如果未出现email
字段,则不执行任何操作required
email
字段不得为 empty
或 null
email
email
字段必须格式化为电子邮件地址
email => 'sometimes|email'
基本上做同样的事情,因为email
规则不允许有
null
或empty
值(它们没有电子邮件格式)