2016-03-29 66 views
0

所以我有這兩個軟件包:主義關係 - 引用的列名作爲標識符實體

  • UserBundle
  • BlogBundle

和這3個實體:

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

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 

我的問題是,它的工作原理,我可以從UserBundle:User通過Article對象訪問數據,但在探查這表明他們不映射正確。我的猜測是有可能做我想做的事,但我只是做錯了什麼。

我錯過了什麼?

回答

1

我認爲問題是與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 
+0

哇哦,我沒有看到這一點。非常感謝你! –