重新映射doctrine列以匹配FOSUserBundle

时间:2014-07-14 13:41:00

标签: php sql symfony doctrine-orm

我想在已有的用户表中使用FOSUserBundle。但问题是我的表名称与FOSUserBundle不同。例如,我有"login"列,而捆绑包需要"username"字段。

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

您能否一步一步地向我解释如何做到这一点?或者至少给我一些提示?文档说的只是几句我从未理解的句子。

谢谢!

2 个答案:

答案 0 :(得分:2)

documentation非常清楚你需要做什么:

1)您的用户类需要扩展FOS\UserBundle\Model\User,但我认为情况已经如此。

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

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

答案 1 :(得分:0)

您可以将某些覆盖属性中的列名设置为子类的映射,如此...

YAML

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

有关此内容的更多信息,请参阅学说docs

这会将列login映射到参数username