我们使用FOSUserBundle与Doctrine,需要更改映射。以下方法在Symfony 2.1.x中工作正常:
- 我们的用户实体扩展了 FOS''用户捆绑包''模型''用户
- 我们的 mapping.orm.yml 映射捆绑包使用的所有字段
这仍然是推荐的方法 (https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/doctrine.md)
升级到Symfony 2.3后,这不再有效:更新"doctrine:schema:update --force"产生以下类型的错误
列"X"的重复定义
其中 x 是 FOSUserBundle 已经使用的任何字段。
有谁知道哪些更改会导致此错误?
不是 100% 确定这是否与您所说的内容相关,但听起来您需要使用属性覆盖
例如,如果要使 salt
属性可为空,则用户实体Acme'UserBundle'Entity'User
将需要类似于以下映射的内容
# user.orm.yml
Acme'UserBundle'Entity'User:
type: entity
id:
id:
type: integer
generator: { strategy: AUTO }
attributeOverride:
salt:
nullable: true
# Other mapping definitions ...