按顺序

编辑本页

警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 5.2,现已不再维护。

本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。

按顺序

此约束允许您应用一组应该逐步验证的规则,允许在引发第一个违规时中断验证。

作为一种替代方案按顺序解决不了的,可以考虑使用GroupSequence这样可以有更多的控制。

5.1

按顺序约束在Symfony 5.1中引入。欧宝娱乐app下载地址

基本用法

假设你有一个的地方对象的美元的地址必须符合以下要求的属性:

  • 它是非空字符串
  • 至少10个字符长的
  • 使用特定的格式
  • 并使用外部服务进行地理定位

在这种情况下,你可能会遇到三个问题:

  • 长度正则表达式类型的约束可能难以失效UnexpectedValueException异常,如果实际值不是字符串,由类型
  • 对于同一个属性,您可能会得到多个错误消息。
  • 你可以执行一个无用的和繁重的外部调用来地理定位地址,而格式是无效的。

你可以依次验证这些约束来解决以下问题:

  • 注释
  • YAML
  • XML
  • PHP
12 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 21
/ / src /定位/ Place.php名称空间应用程序本地化使用应用程序验证器约束作为AcmeAssert使用欧宝娱乐app下载地址组件验证器约束作为断言的地方/ * * *@var字符串* *@Assert顺序\ ({*@Assert\ NotNull () *@Assert* \类型(“字符串”)@Assert\长度(min = 10) *@Assert\ Regex(地点::ADDRESS_REGEX) *@AcmeAssert\Geolocalizable(), *}) */公共地址;}

选项

约束

类型数组默认的选项

此必选选项是要按顺序应用的验证约束数组。

类型数组|字符串

它定义了该约束所属的一个或多个验证组。阅读更多验证组

有效载荷

类型混合默认的

此选项可用于将任意特定于领域的数据附加到约束。已配置的有效负载不由Validator组件使用,但其处理完全取决于您。

例如,您可能想使用若干错误级别根据错误的严重程度,在前端以不同的方式呈现失败的约束。

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。