不同捆绑中的实体之间的Doctrine关联映射或来自两个不同捆绑的实体关联?

时间:2013-02-07 14:00:52

标签: php symfony orm doctrine entity-relationship

区:

namespace Acme\RegionBundle\Entity;

class Region
{

    private $id;

    /**
     * @ORM\OneToMany(targetEntity="User")
     * @ORM\JoinColumn(name="region_id", referencedColumnName="id")
     */
    private $users;
}

用户:

namespace Acme\UserBundle\Entity;

class User
{
    private $id;
    private $region_id;
}

如何在不提及完全指定的实体路径(即硬编码依赖性)的情况下关联来自不同束的实体。

有没有更好的方法?

可以Resolve Target Entity Listener成为解决方案。我无法理解它是如何在这里应用的?

1 个答案:

答案 0 :(得分:6)

解析目标实体侦听器允许您在运行时重新定义关联。它允许您基本上映射如下内容:

@ORM\OneToMany(targetEntity="My\Namespace\UserInterface")

如您所见,将接口映射为目标实体没有多大意义。当您告诉必须用My\Namespace\UserInterface引用替换每个Other\Namespace\User时,它变得非常有用。