sometimes|required|email
有什么区别和 sometimes|email
在 Laravel 验证中?我读过 this discussion from laracasts但对我来说仍然是模棱两可的
最佳答案
从文档:
In some situations, you may wish to run validation checks against a field only if that field is present in the input array. To quickly accomplish this, add the sometimes rule to your rule list
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!
关于validation - Laravel 有时 vs 有时|需要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35839414/