Symfony2中的通用评论系统

时间:2012-08-28 15:28:49

标签: symfony doctrine symfony-2.1

我的Symfony 2.1 RC应用程序中有一个简单的Comment模型(使用Doctrine 2)。每条评论都有usermessage

目前,CommentBundle管理文章​​评论。我希望能够更好地评论任何类型的实体,而无需在专用于评论的不同包中复制代码...

为此,我还需要一种方法来引用评论中的任何实体。我认为有两个字段entity_typeentity_id可以是一个很好的解决方案。但是,如果没有将entity_type手动映射到类并使用find方法,我无法从这些对象中获取对象。

那么如何从评论中引用实体?如何在多个实体上创建通用行为?

1 个答案:

答案 0 :(得分:3)

您可以创建名为Commentable的抽象基类实体,并创建继承Commentable的实体,例如DocumentPost

由于DocumentPost来自Commentable,因此您可以分别在实体CommentableComment之间创建一对多关系。

确保在您的基类ORM注释中包含继承:

@InheritanceType
@DiscriminatorColumn
@DiscriminatorMap

示例可以在Doctrine Project Inheritance Documentation

找到