validation - Laravel 有时 vs 有时|需要

标签 validation laravel required

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/

相关文章:

dynamic - Primefaces TabView 不维护 selectOneMenu 值

javascript - 为什么两种不同的 HTML5 表单计算提交方法会返回不同的行为?

mysql - 验证三个唯一字段和软删除

javascript - 如何验证从浏览器中运行的 JS 生成的 html?

php - 在 Laravel Nova 中为不同的资源使用一张表

php - AWS Elastic Beanstalk + Laravel、Nginx 配置

javascript - AngularJS 自定义所需文本

javascript - AngularJS 服务器和客户端表单验证

wpf - 从标签中删除 WPF 验证装饰

php - 如何在 Laravel 作业类中使用绑定(bind)实现?