重新映射原则列以匹配FOSUserBundle


Remapping doctrine columns to match with FOSUserBundle

我想使用FOSUserBundle与已经存在的用户表。问题是,我的表有不同的列名FOSUserBundle。例如,我有"login"列,而bundle需要"username"字段。

此外,我必须删除"salt"列,因为我只想使用哈希函数(必需的功能)。

你能一步一步地告诉我怎么做吗?或者至少给我点提示?文档只说了几句话,我什么也听不懂。

谢谢!

文档非常清楚您需要做什么:

1)你的用户类需要扩展FOS'UserBundle'Model'User,但我认为它已经是这样了。

2)您需要重新定义整个类的映射(例如使用Doctrine2 ORM: https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/config/doctrine/model/User.orm.xml)

3)你可以更改和删除你不想要的字段的映射(除非Bundle要求)

您可以将某些覆盖属性中的列名设置为子类的映射,如下所示。

YAML

// Acme'UserBundle'Resources'config'doctrine'User.orm.yml
Acme'UserBundle'Entity'User:
    ...
    attributeOverride:
        username:
            column: login
            type: string
            length: 255

有关这方面的更多信息,请参阅doctrine文档。

这将列login映射到参数username