我是我的一个项目我需要定义两个包A和B. 在项目A中,我有一个实体A.E,在项目B中,我有一个实体B.E。
我需要A.E和B.E.之间的双向关系。但是我还需要能够用另一个具有实体C.E的捆绑C替换捆绑B.然后我将用A.E-C.E相同的关系替换A.E-B.E双向关系。
似乎我无法在学说2中定义双向关系船可重复使用:
// pseudo PHP, just to illustrate.
/**
* @manyToOne(targetEntity=B.E)
* @entity
*/
class A.E() {}
/**
* @oneToMany(targetEntity=B.E)
* @entity
*/
class B.E() {}
我无法通过CE替换BE而不更改AE我已经习惯了python Django ORM,我不需要在每个实体中声明两个实体之间的关系,从而允许构建可重用的实体模型。 / p>
我找不到用symfony2构建这样一个可重用模型的方法。我可能误解了某些东西或者走错路。我帮忙吗?
由于
答案 0 :(得分:3)
您可以使可重用实体与接口相关联。基本上是:
class MyReusableEntity
{
/**
* @ORM\ManyToOne(targetEntity="MyVendor\MyBundle\MyInterface")
* @var MyInterface
*/
protected $myInterfaceRelation;
}
在每个项目中你都使用它:
doctrine:
orm:
resolve_target_entities:
MyVendor\MyBundle\MyInterface: My\Concrete\Class
文档:http://symfony.com/doc/current/cookbook/doctrine/resolve_target_entity.html