【问题标题】:Difference between sometimes|required|email and sometimes|email validation rules有时|必需|电子邮件和有时|电子邮件验证规则之间的区别
【发布时间】:2021-12-24 18:12:47
【问题描述】:

requiredsometimes|required|email有什么影响?

我对这些规则的理解是:

  • 有时:仅验证请求中存在的字段

  • 必填:该字段必须存在于请求中且不能为空

  • 电子邮件:该字段必须是有效的电子邮件地址

我感到困惑的部分是为什么在email 应该足够的情况下需要required

例如,如果值为''required 将因为值为空而失败,email 将因为电子邮件无效而失败。但是如果我们将规则更改为sometimes|email,并再次传入''email 将失败,因为它不是有效的电子邮件,有效地完成了required 的工作。

在我看来 sometimes|required|emailsometimes|email 是等价的,但 sometimes|required|email 在 Laravel 文档 (https://laravel.com/docs/8.x/validation#validating-when-present) 中被列为示例。

我也查看了这个问题 (Laravel sometimes vs sometimes|required),但它似乎没有回答这个问题。

干杯

【问题讨论】:

    标签: laravel


    【解决方案1】:

    根据 laravel 文档 (https://laravel.com/docs/6.x/validation#rule-email),电子邮件验证器规则由 egulias/email-validator 包 (https://github.com/egulias/EmailValidator/blob/3.x/src/Validation/RFCValidation.php) 实现,默认情况下仅使用 RFCValidation。实现这一点需要电子邮件值是一个字符串。在此之前添加 required 将导致验证器在调用电子邮件验证器之前失败,从而阻止您向其传递一个空值,该值可能是电子邮件验证器无法处理的 null 或 undefined。

    【讨论】:

      猜你喜欢
      • 2016-11-02
      • 2013-04-29
      • 2013-06-13
      • 1970-01-01
      • 2018-04-02
      • 2015-08-22
      • 1970-01-01
      • 2023-03-03
      • 2023-03-06
      相关资源
      最近更新 更多