验证
编辑该页面警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 4.1,不再维护。
读这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。
验证
验证在web应用程序中是很常见的任务。数据输入表单需要验证。数据还需要验证之前写入数据库或传递给web服务。
欧宝娱乐app下载地址Symfony提供了一个验证器组件,使这项任务变得容易和透明。该组件是基于JSR303 Bean验证规范。
基本的验证
最好的方式来理解验证是看它的实际应用。首先,假设您已经创建了一个plain-old-PHP对象,您需要使用在您的应用程序:
1 2 3 4 5 6 7
/ / src /实体/ Author.php名称空间应用程序\实体;类作者{公共美元的名字;}
到目前为止,这仅仅是一个普通的类,在您的应用程序提供一些目的。验证的目的是告诉你如果一个对象的数据是有效的。为此,您将配置一个规则(称为列表约束)对象必须遵循的是有效的。这些规则通常使用PHP代码定义或注释,但它们也可以被定义为一个validation.yaml
或validation.xml
文件里面的配置/验证器/
目录:
例如,为了保证美元的名字
财产不是空的,添加以下:
- 注释
- YAML
- XML
- PHP
1 2 3 4 5 6 7 8 9 10 11 12
/ / src /实体/ Author.php/ /……使用欧宝娱乐app下载地址\组件\验证器\约束作为断言;类作者{/ * * *@Assert\ NotBlank * /公共美元的名字;}
提示
保护和私人属性也可以验证,以及“getter”方法(见验证)。
使用验证器
服务
接下来,验证一个作者
对象,使用validate ()
方法验证器
服务(类验证器)。的工作验证器
阅读类的约束(即规则)和验证数据对象满足这些约束。如果验证失败,一个非空列表(类的错误ConstraintViolationList返回)。这个简单的例子从一个控制器:
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
/ /……使用欧宝娱乐app下载地址\组件\HttpFoundation\响应;使用欧宝娱乐app下载地址\组件\验证器\验证器\ValidatorInterface;使用应用程序\实体\作者;/ /……公共函数作者(ValidatorInterface美元验证器){美元作者=新作者();/ /……做一些美元作者对象美元错误=美元验证器- >validate (美元作者);如果(数(美元错误)>0){/ * *使用__toString方法$错误变量* ConstraintViolationList对象。这给了我们一个很好的字符串*进行调试。* /美元errorsString=(字符串)