【问题标题】:Laravel sometimes vs sometimes|requiredLaravel 有时 vs 有时|需要
【发布时间】:2016-06-20 17:56:59
【问题描述】:

在 Laravel 验证中 sometimes|required|emailsometimes|email 有什么区别?我读过 this discussion from laracasts 但对我来说仍然模棱两可

【问题讨论】:

    标签: validation laravel required


    【解决方案1】:

    来自文档:

    在某些情况下,您可能希望针对 仅当该字段存在于输入数组中时。要快速 完成此操作,将有时规则添加到您的规则列表中

    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!
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-08
    • 1970-01-01
    相关资源
    最近更新 更多