不同束中实体之间的条令关联映射或将来自两个不同束的实体关联起来


Doctrine association mapping between entities in different bundle or relate entities from two different bundles?

区域:

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

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

有什么更好的方法吗?

可以将解析目标实体侦听器作为解决方案。我不明白它怎么能在这里应用?

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

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

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