4

地区:

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;
}

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

有没有更好的方法?

可以解决目标实体侦听器是一个解决方案。我无法理解它如何应用在这里?

4

1 回答 1

6

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

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

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

于 2013-02-08T20:46:00.973 回答