【问题标题】:Remapping doctrine columns to match with FOSUserBundle重新映射学说列以与 FOSUserBundle 匹配
【发布时间】:2014-09-04 10:46:10
【问题描述】:

我想将 FOSUserBundle 与现有的 users 表一起使用。然而问题是我的表的列名与 FOSUserBundle 不同。例如,我有"login" 列,而捆绑包需要"username" 字段。

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

能否请您逐步解释一下如何做到这一点?或者至少给我一些提示?文档只说了几句话,我什么都听不懂。

谢谢!

【问题讨论】:

    标签: php sql symfony doctrine-orm


    【解决方案1】:

    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 要求)

    【讨论】:

      【解决方案2】:

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

      YAML

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

      有关此的更多信息,请参阅教义docs

      这会将列login 映射到参数username

      【讨论】:

        猜你喜欢
        • 2016-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-18
        相关资源
        最近更新 更多