1

当创建一个不仅仅用于一个应用程序的包时,而是考虑到更通用的用途,比如说一个 ChatBundle,我总是遇到同样的问题,即如何使用在许多情况下当然需要的用户对象(比如在聊天)。

在仅在一个应用程序中使用的包中,我只需硬编码对我的主包的引用,如下所示:

<?php
namespace Acme\ChatBundle\Entity;

/**
 * @ORM\Entity
 */
class Message
{
    /**
     * @ORM\ManyToOne(targetEntity="Acme\ProjectBundle\User")
     */
    private $user;
...

但在通用捆绑包中这是不可能的。是让开发者自己实现所有实体的唯一方法吗?有没有最佳实践?除了其他捆绑包的代码外,我找不到任何关于该主题的文档或博客文章(但它们中的大多数都非常复杂和抽象,很难掌握其中的主要问题)。

4

1 回答 1

1

我认为这里最好的解决方案是使用Doctrine 的 TargetEntityListener

于 2012-12-08T18:10:31.900 回答