我的Symfony 2.1 RC应用程序中有一个简单的Comment
模型(使用Doctrine 2)。每条评论都有user
和message
。
目前,CommentBundle
管理文章评论。我希望能够更好地评论任何类型的实体,而无需在专用于评论的不同包中复制代码...
为此,我还需要一种方法来引用评论中的任何实体。我认为有两个字段entity_type
和entity_id
可以是一个很好的解决方案。但是,如果没有将entity_type
手动映射到类并使用find
方法,我无法从这些对象中获取对象。
那么如何从评论中引用实体?如何在多个实体上创建通用行为?
答案 0 :(得分:3)
您可以创建名为Commentable
的抽象基类实体,并创建继承Commentable
的实体,例如Document
或Post
。
由于Document
和Post
来自Commentable
,因此您可以分别在实体Commentable
和Comment
之间创建一对多关系。
确保在您的基类ORM注释中包含继承:
@InheritanceType
@DiscriminatorColumn
@DiscriminatorMap
找到