2

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

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

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

那么如何从评论中引用实体呢?以及如何创建适用于多个实体的通用行为?

4

1 回答 1

3

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

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

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

@InheritanceType
@DiscriminatorColumn
@DiscriminatorMap

示例可以在Doctrine Project Inheritance Documentation中找到

于 2012-08-28T16:23:16.313 回答