2015-05-22 124 views
0

我爲我的應用程序使用Symfony2並使用Doctrine .orm.yml文件進行關係映射。Symfony 2 - 如何設置三個實體之間具有多對多關係的關係

我有三個實體如下:

    包含ID(整數主鍵)
  1. 用戶實體,USER_NAME(VARCHAR)

  2. 組合實體包含ID(整數主鍵),姓名(VARCHAR),USER_ID(FK從用戶識別誰創造了投資組合),其中包含ID(整數主鍵)

  3. 進步實體,progress_text(VARCHAR)

我的問題是,我不知道如何設置三個實體,即投資組合,用戶和進步之間的多對多關係。

我想設置的方式的關係,使得被作爲這種關係的結果創建的新表中包含以下字段:

  1. USER_ID
  2. portfolio_id
  3. progress_id
  4. created_at
  5. updated_at
  6. type

在上面的列表created_at中,updated_at和type是我用於某些業務規則目的的字段。

請一些身體幫助我寫他們的.orm.yml文件。我知道Symfony2中有內置命令可以生成實體及其對應的.orm.yml文件。但我不知道如何在他們相應的文件中編寫上面所需的關係。

回答

0

您需要爲此關係創建單獨的關聯表。 您的ORM文件會像:


Application\Bundle\Entity\nameofAssociationTable: 
    type: entity 
    table: nameofAssociationTable 
    fields: 
    id: 
     type: integer 
     id: true 
     generator: 
     strategy: AUTO 
    manyToOne: 
user: 
     targetEntity: Application\Bundle\Entity\User 
     cascade: { } 
     mappedBy: null 
     inversedBy: null 
     joinColumns: 
     user_id: 
      referencedColumnName: id 
     orphanRemoval: false 
portfolio: 
     targetEntity: Application\PLibBundle\Entity\Portfolio 
     cascade: 
     - persist 
     - remove 
     mappedBy: null 
     inversedBy: null 
     joinColumns: 
     portfolio_id: 
      referencedColumnName: id 
     orphanRemoval: false 
    lifecycleCallbacks: { } 

同樣需要添加關係到多對一的關係。謝謝。

相關問題