Symfony uniquentity vs UniqueConstraint vs unique=true
有人能解释一下验证器、表注释和Symfony uniquentity vs UniqueConstraint vs unique=true,symfony,doctrine-orm,doctrine,Symfony,Doctrine Orm,Doctrine,有人能解释一下验证器、表注释和@Column注释选项之间的概念区别吗 我理解@UniqueConstraint在数据库级别添加唯一的索引,并且@uniquentity在ORM级别验证。那么,我应该使用什么选项,还是使用所有选项?如中所述,@UniqueConstraint注释用于在多个列上创建唯一约束,而unique=true用于一个列上的唯一约束 uniquentityvalidator的存在是为了显示友好的错误消息和唯一的数据库约束,其目的是确保您不存储重复的数据 因此,您的问题的答案是这样
@Column
注释选项之间的概念区别吗
我理解@UniqueConstraint
在数据库级别添加唯一的
索引,并且@uniquentity
在ORM级别验证。那么,我应该使用什么选项,还是使用所有选项?如中所述,@UniqueConstraint
注释用于在多个列上创建唯一约束,而unique=true
用于一个列上的唯一约束
uniquentityvalidator
的存在是为了显示友好的错误消息和唯一的数据库约束,其目的是确保您不存储重复的数据
因此,您的问题的答案是这样的-您应该同时使用数据库约束和
@UniqueValidator
@UniqueConstraint
和unique=true
都是原则的一部分,并且做类似的事情
在特定列上设置unique=true
时,Doctrine将在数据库中的该列上创建一个唯一键
@UniqueConstraint
可用于在数据库中创建多列上的唯一键(复杂唯一键)。但是如果您传递一个列,那么结果将与在该字段上使用unique=true
完全相同
另一方面,@uniquentity
不是教义的一部分,而是Symfony框架的一部分。虽然上面的选项被条令用来生成正确的模式,但这只是Symfony表单组件在提交表单时通常使用的验证器
因此,为了回答您的最后一个问题-是的,您通常应该同时使用@uniquentity
和@UniqueConstraint
或unique=true
中的一个