在我的一个项目中,我需要定义两个捆绑包A和B。在项目AI中,实体AE为实体;在项目BI中,实体BE为实体。
我需要AE和BE之间的双向关系,但我还需要能够用另一个具有实体CE的束C替换束B,然后再用AE-CE相同关系代替AE-BE双向关系。
看来我无法在原则2中将双向关系定义为可重用:
// pseudo PHP, just to illustrate.
/**
* @manyToOne(targetEntity=B.E)
* @entity
*/
class A.E() {}
/**
* @oneToMany(targetEntity=B.E)
* @entity
*/
class B.E() {}
我不能在不更改AE的情况下用CE替换BE,我已经习惯了python Django ORM,因为我不需要在它们各自声明两个实体之间的关系,因此可以构建可重用的实体模型。
我找不到用symfony2构建这种可重用模型的方法。我可能误会了某些东西或走错了路。对此有帮助吗?
谢谢
您可以使您的可重用实体与接口相关。基本上:
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句