Laravel有时候有时候需要

时间:2016-03-07 08:43:15

标签: validation laravel required

Laravel验证中sometimes|required|emailsometimes|email之间有什么区别?我读过this discussion from laracasts,但对我来说仍然含糊不清

1 个答案:

答案 0 :(得分:8)

来自文档:

  

在某些情况下,您可能希望对a执行验证检查   仅当输入数组中存在该字段时才输入字段。快点   完成此操作,将有时规则添加到规则列表

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!