UniqueEntity
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 2.8,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
UniqueEntity
验证Doctrine实体中的一个(或多个)特定字段是否惟一。例如,这通常用于防止新用户使用系统中已经存在的电子邮件地址注册。
适用于 | 类 |
选项 | |
类 | UniqueEntity |
验证器 | UniqueEntityValidator |
基本用法
假设你有一个AppBundle包用户
具有电子邮件
字段。您可以使用UniqueEntity
约束来保证电子邮件
字段在你的用户表中的所有约束之间保持唯一:
- 注释
- YAML
- XML
- PHP
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
/ / src / AppBundle /实体/ Author.php名称空间AppBundle\实体;使用ob娱乐下载\组件\验证器\约束作为断言;使用学说\ORM\映射作为ORM;//不要忘记这个use语句!!使用ob娱乐下载\桥\学说\验证器\约束\UniqueEntity;/ * * *@ORM* \实体@UniqueEntity(“电子邮件”)* /类作者{/ * * *@var字符串$email * *@ORM\列(name="email", type="string", length=255, unique=true) *@Assert\电子邮件* /受保护的$电子邮件;/ /……}
谨慎
这个约束没有提供任何保护竞态条件.当外部流程在验证通过后持久化另一个实体,并且在该实体实际持久化到数据库之前持久化该实体时,可能会发生这种情况。
选项
字段
类型:数组
|字符串
[默认的选项]
这个必需的选项是这个实体应该是唯一的字段(或字段列表)。例如,如果同时指定电子邮件
而且的名字
场在一个单一UniqueEntity
约束,那么它将强制组合值是唯一的(例如,两个用户可以有相同的电子邮件,只要他们也没有相同的名字)。
如果你需要两个字段分别是唯一的(例如,一个唯一的电子邮件
而且新兴市场>一个独特的用户名
),你用两个UniqueEntity
条目,每个条目只有一个字段。
errorPath
类型:字符串
默认的:中第一个字段的名称字段
如果实体违反约束,则错误消息将绑定到中的第一个字段字段.如果有多个字段,您可能希望将错误消息映射到另一个字段。
想想这个例子:
- 注释
- YAML
- XML
- PHP
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
/ / src / AppBundle /实体/ Service.php名称空间AppBundle\实体;使用学说\ORM\映射作为ORM;使用ob娱乐下载\桥\学说\验证器\约束\UniqueEntity;/ * * *@ORM* \实体@UniqueEntity(* fields={"host", "port"}, * errorPath="port", * message="此端口已在该主机上使用。"*) */类服务{/ * * *@ORM\ ManyToOne (targetEntity =“App \实体\主机”)* /公共$宿主;/ * * *@ORM\列(类型=“整数”)* /公共$港口;}
现在,消息将被绑定到港口
字段。
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。