学说关系 - 引用列名作为实体的标识符

Doctrine Relationships - referenced Column name as identifier for entity

所以我有这 2 个捆绑包:

和这 3 个实体:

BlogBundle:User 使用双向一对一关系扩展 UserBundle:User。连接列名称是 user_id,它是一个关联键:

BlogBundle\Entity\User:
type: entity
table: blog_users
id:
    user:
        associationKey: true
oneToOne:
    user:
        targetEntity: UserBundle\Entity\User
        inversedBy: blog_user
        joinColumn:
            name: user_id
            referencedColumnName: id

现在我想在 BlogBundle:UserBlogBundle:Article 之间创建双向一对多关系。

目前我正在尝试这个:

BlogBundle:User
oneToMany:
    articles:
        targetEntity: Article
        mappedBy: author

BlogBundle:Article
manyToOne:
    author:
        targetEntity: User
        inversedBy: Article
        joinColumn:
            name: author
            referencedColumnName: user_id

我的问题 是,它有效,我可以通过 Article 对象从 UserBundle:User 访问数据,但在探查器中它显示它们不是正确映射。我的猜测是可以做我正在尝试的事情,但我只是做错了什么。

我错过了什么?

我认为问题出在 inversedBy 上,你必须在这里写字段的名称,而不是实体的名称。

这里需要文档: http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/reference/association-mapping.html#one-to-many-bidirectional

您的代码将是:

BlogBundle:User
  oneToMany:
    articles:
      targetEntity: Article
      mappedBy: author

BlogBundle:Article
  manyToOne:
    author:
      targetEntity: User
      inversedBy: articles
      joinColumn:
        name: author
        referencedColumnName: user_id