我在Symfony2项目中使用FOSUserBundle,我想在User实体的用户名和电子邮件字段中禁用“unique”属性。也许这听起来很奇怪,但我正在使用另一个字段组合来确保我的数据库中有唯一(活动)用户,这很好。
现在我已按照以下方式设置User.orm.yml:
MyProjectBundle\Entity\User:
type: entity
attributeOverride:
usernameCanonical:
unique: false
emailCanonical:
unique: false
table: fos_user
id:
id:
type: guid
generator:
strategy: UUID
fields:
etc... etc...
当我使用此设置,并通过控制台创建/更新我的数据库时,UNIQUE索引将从数据库中删除,就像我想要的那样。 YAY!
但是,当我尝试使用
生成项目实体时 doctrine:generate:entities MyProjectBundle
我收到以下错误:
Invalid field override named 'usernameCanonical' for class 'MyProjectBundle\Entity\User'.
所以它没有正确生成我的实体....
现在,我想在生成实体时暂时删除User.orm.yml
中的attributeOverride部分,如果我想更新数据库,请将其重新放回。
我的项目使用此解决方法正常工作,但我知道为什么我的attributeOverride
无效并且设置正确,我会感觉更舒服......
任何有远见或建议的人?