集合

编辑本页

警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 2.0,现已不再维护。

本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。

集合

当底层数据是一个集合(即数组或实现的对象)时,使用此约束可否认的而且ArrayAccess),但是您希望以不同的方式验证该集合的不同键。例如,您可以验证电子邮件键使用电子邮件约束和库存属性的集合的最小值约束。

这个约束还可以确保存在某些集合键,而不存在额外的键。

基本用法

集合Constraint允许您分别验证集合的不同键。举个例子:

12 3 4 5 6 7 8 9 10 11 12 13 14 15
/ / src / Acme / / Author.php BlogBundle /实体名称空间AcmeBlogBundle实体作者受保护的profileData数组“personal_email”,“short_bio”,);公共函数setProfileData关键,价值->profileData [关键] =价值;}}

为了验证personal_email元素profileData数组属性是有效的电子邮件地址,并且short_bio元素不是空白,但长度不超过100个字符,您将执行以下操作:

  • YAML
  • 注释
  • XML
  • PHP
12 3 4 5 6 7 8 9 10 11 12 13
# src / Acme / BlogBundle /资源/ config / validation.ymlAcme \ BlogBundle \实体\作者:属性:profileData:-集合:字段:personal_email:电子邮件short_bio:-NotBlank-最大长度:限制:One hundred.信息:你的生物长!allowMissingFields:真正的

字段的存在和不存在

默认情况下,该约束不仅仅验证集合中的各个字段是否通过了分配的约束。实际上,如果集合中缺少任何键,或者集合中有任何无法识别的键,就会抛出验证错误。

如果希望在集合中不存在键,或者希望在集合中允许“额外”键,则可以修改allowMissingFields而且allowExtraFields分别选择。在上面的例子中,allowMissingFields选项设置为true,这意味着如果personal_emailshort_bio元素从personalData美元属性,则不会发生验证错误。

选项

字段

类型数组默认的选项

此选项是必需的,它是一个关联数组,定义集合中的所有键,并且对于每个键,确切地说应该对集合中的该元素执行哪个验证器。

allowExtraFields

类型布尔默认的:假

如果此选项设置为类中未包含的一个或多个元素字段选项,将返回一个验证错误。如果设置为真正的,额外字段是可以的。

extraFieldsMessage

类型布尔默认的字段{{fields}}不是预期的

如果显示的消息allowExtraFields为false,检测到一个额外的字段。

allowMissingFields

类型布尔默认的:假

如果此选项设置为的一个或多个字段字段选项不存在于基础集合中,则将返回验证错误。如果设置为真正的,如果' fields_ '选项中的某些字段在底层集合中不存在,也没关系。

missingFieldsMessage

类型布尔默认的字段{{fields}}缺失

如果显示的消息allowMissingFields为false,且基础集合中缺少一个或多个字段。

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