2016-04-26 7 views
0

Symfony 2.8では、私は同じフィールドを持ついくつかのエンティティを持っていますが、データ編成のために別のエンティティにする必要があります。すべてのフィールド、getter、setterを持つ抽象基本クラスを1つ作成し、できるだけ少ない繰り返しで基本抽象クラスを拡張する新しいエンティティを作成することは可能ですか?Symfony2 - 継承のための抽象実体、DBテーブルなし?

例:
私はMovieエンティティを持っていて、いくつかの人が接続しているとします。人々は異なる役職(俳優、監督)を持っていますが、彼らはFirstNameとLastNameだけを持っているとしましょう。私は、データ分離の目的で、それらを1つのテーブル(役割付き)に保管したくない。
FirstNameLastName、ゲッターとセッターを持つ抽象的なPersonエンティティを作成したいと思います。そして、空の(できるだけ空の)クラスActorDirectorを作成してPersonを拡張し、残りの部分をDoctrineが処理するようにしたいので、DBではactorのテーブルをすべてPersonのフィールドに持つ必要があります。

私が望むものに近いものを達成することは可能でしょうか?

+0

ロールごとに新しいエンティティを作成するのではなく、単にロールエンティティと人物エンティティとの関連付けを作成できませんか? –

+1

私はあなたがこれを探していると思う:[公式文書へのリンク](http://symfony.com/doc/current/cookbook/doctrine/resolve_target_entity.html) –

答えて

0

基本的な継承のようです。 Personエンティティを永続化するのではなく、継承するエンティティを保持したいので、永続化したいがEntity自体のすべてでDoctrine文を定義するベースEntityを定義できます。

子エンティティで、永続化したい残りのフィールドを定義し、Doctrineとその特定のエンティティを永続させるテーブルを定義している子エンティティの注釈に対して+エンティティを指示するように設定しますその親のDoctrine設定を継承する。

次に、すべての子がそれ自身のテーブルに永続化されるように、親と子のDoctrine設定と、子のテーブル設定のみを持ちます。

関連する問題