如何验证原始值(标量值和数组)

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 5.3,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

如何验证原始值(标量值和数组)

通常你会验证整个对象。但有时,你想验证一个简单的值——就像来验证一个字符串是一个有效的电子邮件地址。在一个控制器,它看起来像这样:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27日28
/ /……使用欧宝娱乐app下载地址\组件\验证器\约束作为断言;使用欧宝娱乐app下载地址\组件\验证器\验证器\ValidatorInterface;/ /……公共函数addEmail(美元电子邮件,ValidatorInterface美元验证器){美元emailConstraint=维护\电子邮件();/ /所有约束可以设置“选项”这种方式美元emailConstraint- >消息=无效的电子邮件地址的;/ /使用验证器验证值美元错误=美元验证器- >validate (美元电子邮件,美元emailConstraint);如果(!美元错误- >count ()) {/ /……这是一个有效的电子邮件地址,做点什么}其他的{/ /这是一个有效的电子邮件地址*不*美元errorMessage=美元错误(0]- >getMessage ();/ /……做一些错误}/ /……}

通过调用validate ()在验证器,您可以传递一个原始值和约束对象,你想验证值。可用约束的完整列表,以及每个约束的完整类名——是可用的约束参考部分。

验证数组是可能的使用集合约束:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
使用欧宝娱乐app下载地址\组件\验证器\约束作为断言;使用欧宝娱乐app下载地址\组件\验证器\验证;美元验证器=验证::createValidator ();美元输入= (“名字”= > [“first_name”= >“法”,“last_name”= >“力量”),“电子邮件”= >“test.tld”,“简单”= >“你好”,“eye_color”= >3,“文件”= >,“密码”= >“测试”,“标签”= > [[“鼻涕虫”= >“欧宝娱乐app下载地址symfony_doc”,“标签”= >“欧宝娱乐app下载地址symfony医生”,]]];美元=维护\ GroupSequence ([“默认”,“自定义”]);美元约束=维护\集合([/ /对应的按键输入数组中的键“名字”= >维护\集合([“first_name”= >维护\长度([“最小值”= >101年]),“last_name”= >维护\长度([“最小值”= >1)))),“电子邮件”= >维护\电子邮件(),“简单”= >维护\长度([“最小值”= >102年]),“eye_color”= >维护\选择([3,4]),“文件”= >维护\文件(),“密码”= >维护\长度([“最小值”= >60]),“标签”= >维护\可选([维护\类型(“数组”),维护\计数([“最小值”= >1]),维护所有([\维护\集合([“鼻涕虫”= > [维护\ NotBlank (),维护\类型([“类型”= >“字符串”),),“标签”= > [维护\ NotBlank ()))),CustomUniqueTagValidator ([“组织”= >“自定义”))))))));美元违反=美元验证器- >validate (美元输入,美元约束,美元);

validate ()方法返回一个ConstraintViolationList错误的对象,它就像一个数组。集合中的每一个错误ConstraintViolation对象,该对象持有的错误消息getMessage ()方法。

请注意

当使用组的集合限制,一定要使用可选在适当的时候约束作为其参考文档中解释。欧宝体育电话

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。
欧宝娱乐app下载地址Symfony 5.3支持通过JoliCode