元数据
编辑本页警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 4.2,现已不再维护。
读本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。
元数据
的ClassMetadata类表示并管理给定类上的所有配置约束。
属性
Validator组件可以验证公共、受保护或私有属性。属性是否正确,下面的示例演示如何验证firstName美元
的属性作者
类至少有3个字符:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
/ /……使用欧宝娱乐app下载地址\组件\验证器\约束作为断言;使用欧宝娱乐app下载地址\组件\验证器\映射\ClassMetadata;类作者{私人$firstName;公共静态函数loadValidatorMetadata(ClassMetadata$元数据){$元数据->addPropertyConstraint (“firstName”,新维护\ NotBlank ());$元数据->addPropertyConstraint (“firstName”,新维护\长度([“最小值”= >3.)));}}
getter
约束也可以应用于任何public返回的值getter方法,这些方法的名称以得到
,有
或是
.该特性允许动态验证对象。
假设出于安全原因,您希望验证密码字段是否与用户的名字不匹配。首先,创建一个名为isPasswordSafe ()
定义这个自定义验证逻辑:
1 2 3 4
公共函数isPasswordSafe(){返回$这->firstName = = !$这->密码;}
然后,将Validator组件配置添加到类中:
12 3 4 5 6 7 8 9 10 11 12 13
/ /……使用欧宝娱乐app下载地址\组件\验证器\约束作为断言;使用欧宝娱乐app下载地址\组件\验证器\映射\ClassMetadata;类作者{公共静态函数loadValidatorMetadata(ClassMetadata$元数据){$元数据->addGetterConstraint (“passwordSafe”,新维护\ IsTrue ([“消息”= >“密码与您的名字不匹配”)));}}
类
一些约束允许验证整个对象。例如,回调Constraint是应用于类本身的泛型约束。
假设类定义了一个validate ()
方法来保存其自定义验证逻辑:
1 2 3 4 5 6 7
/ /……使用欧宝娱乐app下载地址\组件\验证器\上下文\ExecutionContextInterface;公共函数验证(ExecutionContextInterface$上下文){/ /……}
然后,将Validator组件配置添加到类中:
1 2 3 4 5 6 7 8 9 10 11
/ /……使用欧宝娱乐app下载地址\组件\验证器\约束作为断言;使用欧宝娱乐app下载地址\组件\验证器\映射\ClassMetadata;类作者{公共静态函数loadValidatorMetadata(ClassMetadata$元数据){$元数据->addConstraint (新维护\回调(“验证”));}}
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。