谁能解释@UniqueEntity
验证程序,@UniqueConstraint
表注释和unique=true
注释的@Column
选项之间的概念区别是什么。
我知道@UniqueConstraint
在数据库级别添加UNIQUE
索引,而@UniqueEntity
在ORM级别进行验证。那么我应该使用什么选项,还是全部使用?
最佳答案
@UniqueConstraint
和unique=true
是Doctrine的一部分,并且做类似的事情。
在特定列上设置unique=true
时,Doctrine将在数据库中的该列上物理创建一个唯一键。@UniqueConstraint
可用于在数据库中的多列上创建唯一键(复杂唯一键)。但是,如果仅传递一列,则结果将与在该字段上使用unique=true
完全相同。
另一方面,@UniqueEntity
不是Doctrine的一部分,而是Symfony框架的一部分。尽管Doctrine使用上述选项来生成适当的模式,但该选项只是Symfony Form Component在提交表单时通常使用的验证器。
因此,要回答您的最后一个问题-是的,通常应同时使用@UniqueEntity
和@UniqueConstraint
或unique=true
之一。
关于symfony - Symfony UniqueEntity与UniqueConstraint与Unique = true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46415127/