2

Symfony 2.1 RC アプリに単純なCommentモデル (Doctrine 2 を使用) があります。すべてのコメントにはuserと がありmessageます。

現在、 がCommentBundle記事のコメントを管理しています。コメント専用のさまざまなバンドル間でコードをコピーすることなく、あらゆる種類のエンティティにコメントできるように、より一般的にしたいと思います...

これが機能するには、コメント エンティティから任意のエンティティを参照する方法も必要です。entity_type2 つのフィールドを持つentity_idことは、良い解決策になると思います。entity_typeただし、手動でクラスにマッピングしてfindメソッドを使用しないと、これらからオブジェクトを取得できません。

では、コメントからエンティティを参照するにはどうすればよいでしょうか? また、複数のエンティティで動作する一般的な動作を作成するにはどうすればよいですか?

4

1 に答える 1

3

と呼ばれる抽象基本クラス エンティティを作成し、やなどCommentableを継承するエンティティを作成できます。CommentableDocumentPost

DocumentPostは から派生しているため、エンティティとCommentableの間にそれぞれ 1 対多の関係を作成できます。CommentableComment

継承のために、基底クラスの ORM アノテーションに必ず含めてください。

@InheritanceType
@DiscriminatorColumn
@DiscriminatorMap

例はDoctrine Project Inheritance Documentationにあります

于 2012-08-28T16:23:16.313 に答える