2017-02-09 55 views
0

我需要在對象可以有父母和子類型相同的對象之間創建關係。學說:多對多,自引用但是使用yaml映射文件

認爲像類樹可以有一個父類別(或多個父類別),也可以有一個子類別(或多個子類別)的類別樹。

因此,Doctrine explains how to do this但該示例使用annotations

但在我的項目中,我使用yaml文件來描述映射,我不知道如何將該原則的示例轉換爲yaml

任何人都可以幫助我嗎?

回答

0

我鼓勵你研究Doctrine提供的YAML Mapping Documentation

另外請注意,您可以使用orm:convert-mapping命令主義提供了映射

之間的轉換

例子:

php bin/console doctrine:mapping:convert --filter User yml /path_to_yml 

過濾器是可選

+0

呃呃,喲你把它鏈接起來了,但是你看過了嗎?沒有提及多對多的自引用關係......不幸的是! 我不能轉換映射,因爲這隻需要更多的工作來做轉換(以告訴Symfony加載yaml映射和註釋太...我不知道是否有可能混合兩個... oO)... – Aerendir

+0

沒有用於自引用關係的特殊映射。您只需使用manyToMany,targetEntity,joinTable等組合。此外,轉換背後的想法並不是同時使用,而是以獨立演示項目中的格式編寫映射,將其轉換並用於原始項目中。 – Vamsi

+0

我需要一個例子,你能提供一個嗎?創建演示項目的工作太多了,ecc ...我認爲這是一個必須在線的例子...所以這是創建一個正確的問題... – Aerendir

0

好吧,這是解決方案:

manyToMany: 
    parentDependencies: 
     targetEntity: SerendipityHQ\Bundle\QueuesBundle\Entity\Job 
     inversedBy: childDependencies 
     joinTable: 
      name: queues_jobs_chains 
      joinColumns: 
       child_job: 
        referencedColumnName: id 
      inverseJoinColumns: 
       parent_job: 
        referencedColumnName: id 
    childDependencies: 
     targetEntity: SerendipityHQ\Bundle\QueuesBundle\Entity\Job 
     mappedBy: parentDependencies