区:
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成为解决方案。我无法理解它是如何在这里应用的?
答案 0 :(得分:6)
解析目标实体侦听器允许您在运行时重新定义关联。它允许您基本上映射如下内容:
@ORM\OneToMany(targetEntity="My\Namespace\UserInterface")
如您所见,将接口映射为目标实体没有多大意义。当您告诉必须用My\Namespace\UserInterface
引用替换每个Other\Namespace\User
时,它变得非常有用。