You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Validatable能否实现可选密码的条件验证?

解决方案

完全可以通过Validatable实现这个需求,不需要在请求处理逻辑里手动验证。只需调整验证规则,针对可选类型的password做存在时才触发的条件验证:

extension User.Create: Validatable {
    static func validations(_ validations: inout Validations) {
        validations.add("email", as: String.self, is: .email)
        // 密码为可选类型,仅当用户提供时验证长度≥8
        validations.add("password", as: String?.self, is: .optional(.count(8...)))
    }
}

逻辑说明

  • 当请求中不携带password字段,或者password为nil时,验证会直接通过,你可以在后续逻辑里自动生成密码;
  • 当用户主动提供password时,验证器会自动检查其长度是否满足8位及以上的要求,不满足则返回验证失败。

内容的提问来源于stack exchange,提问作者LinusG.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 22:24:55