如何验证原始值(标量值和数组)
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 4.4,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
如何验证原始值(标量值和数组)
通常,您将验证整个对象。但有时,您希望验证一个简单的值—例如验证字符串是否是有效的电子邮件地址。从控制器内部看,它是这样的:
12 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
/ /……使用ob娱乐下载\组件\验证器\约束作为断言;使用ob娱乐下载\组件\验证器\验证器\ValidatorInterface;/ /……公共函数addEmail($电子邮件, ValidatorInterface$验证器){$emailConstraint=新维护\电子邮件();//所有约束"options"都可以这样设置$emailConstraint->消息=“无效的电邮地址”;//使用验证器来验证值$错误=$验证器->validate ($电子邮件,$emailConstraint);如果(!$错误->count ()) {/ /……这是一个有效的电子邮件地址,做点什么}其他的{//这不是有效的电子邮件地址$errorMessage=$错误(0]->getMessage ();/ /……对错误做些什么}/ /……}
通过调用validate ()
在验证器上,可以传入一个原始值和要验证该值的约束对象。类中提供了可用约束的完整列表以及每个约束的完整类名约束参考部分。
数组的验证可以使用集合
约束:
12 34 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
使用ob娱乐下载\组件\验证器\约束作为断言;使用ob娱乐下载\组件\验证器\验证;$验证器=验证::createValidator ();$输入= (“名字”= > [“first_name”= >“法”,“last_name”= >“力量”),“电子邮件”= >“test.tld”,“简单”= >“你好”,“eye_color”= >3.,“文件”= >零,“密码”= >“测试”,“标签”=> [[“鼻涕虫”= >“ob娱乐下载symfony_doc”,“标签”= >“ob娱乐下载symfony医生”,],],];$组=新维护\ GroupSequence ([“默认”,“自定义”]);$约束=新维护\集合([//这些键对应于输入数组中的键“名字”= >新维护\集合([“first_name”= >新维护\长度([“最小值”= >101]),“last_name”= >新维护\长度([“最小值”= >1)))),“电子邮件”= >新维护\电子邮件(),“简单”= >新维护\长度([“最小值”= >102]),“eye_color”= >新维护\选择([3.,4]),“文件”= >新维护\文件(),“密码”= >新维护\长度([“最小值”= >60]),“标签”= >新维护\可选([新维护\类型(“数组”),新维护\计数([“最小值”= >1]),新维护所有([\新维护\集合([“鼻涕虫”= > [新维护\ NotBlank (),新维护\类型([“类型”= >“字符串”),),“标签”= > [新Assert\NotBlank(),],]),新CustomUniqueTagValidator ([“组织”= >“自定义”]),]),]),]);$违反=$验证器->validate ($输入,$约束,$组);
的validate ()
方法返回ConstraintViolationList对象,它的作用类似于错误数组。集合中的每个错误都是一个ConstraintViolation对象,该对象在其对象上保存错误消息getMessage ()
方法。
请注意
属性使用组时集合约束,一定要使用可选
约束,如其参考文档中所述。欧宝官网下载app
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。