symfony - Symfony UniqueEntity与UniqueConstraint与Unique = true

标签 symfony doctrine-orm doctrine

谁能解释@UniqueEntity验证程序,@UniqueConstraint表注释和unique=true注释的@Column选项之间的概念区别是什么。

我知道@UniqueConstraint在数据库级别添加UNIQUE索引,而@UniqueEntity在ORM级别进行验证。那么我应该使用什么选项,还是全部使用?

最佳答案

@UniqueConstraintunique=true是Doctrine的一部分,并且做类似的事情。

在特定列上设置unique=true时,Doctrine将在数据库中的该列上物理创建一个唯一键。

@UniqueConstraint可用于在数据库中的多列上创建唯一键(复杂唯一键)。但是,如果仅传递一列,则结果将与在该字段上使用unique=true完全相同。

另一方面,@UniqueEntity不是Doctrine的一部分,而是Symfony框架的一部分。尽管Doctrine使用上述选项来生成适当的模式,但该选项只是Symfony Form Component在提交表单时通常使用的验证器。

因此,要回答您的最后一个问题-是的,通常应同时使用@UniqueEntity@UniqueConstraintunique=true之一。

关于symfony - Symfony UniqueEntity与UniqueConstraint与Unique = true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46415127/

相关文章:

symfony - 如何在 “/api”文档api平台上添加我的自定义错误

reactjs - 如何在 ReactJS 中链接 Action ?

php - 无法取消链接临时SQLite文件

php - Doctrine - 当用户实体可以拥有一个或多个地址时,如何通过用户实体访问用户的事件地址?

symfony2 用 Twig 生成静态 html

mongodb - 试图从命名空间 "ObjectID"加载类 "MongoDB\BSON"

symfony - 使用QueryBuilder的多个WHERE

symfony2 : Using group_concat in QueryBuilder(Doctrine)

postgresql - 在自定义模式而不是公共(public)模式中配置doctrine_migration_versions表

php - 引用的列名必须是目标实体类上的主键列