2017-02-09 92 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