条令关系-引用列名作为实体的标识符



所以我有这两个捆绑包:

  • UserBundle
  • BlogBundle

以及这3个实体:

  • UserBundle:User
  • BlogBundle:User
  • BlogBundle:Article

CCD_ 6使用双向一对一关系来扩展CCD_。联接列名为user_id,它是一个关联键:

BlogBundleEntityUser:
type: entity
table: blog_users
id:
    user:
        associationKey: true
oneToOne:
    user:
        targetEntity: UserBundleEntityUser
        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中的数据,但在探查器中,它显示这些数据没有正确映射。我的猜测是,做我正在努力的事情是可能的,但我只是做错了什么。

我错过了什么?

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

以下是文档:http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/reference/association-mapping.html#one-到许多双向

您的代码将是:

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

最新更新