別の質問。私は抽象的なBaseLog Entityを持っていて、私のユーザとの関連を維持しています。 さらに、BaseLogを拡張する2つのエンティティ(FooLog & BarLog)があります。さらに私は、ログに2つの関連付けを保持すると思われるユーザエンティティを持っています。 1つはFooLog用、もう1つはBarLog用です。ここに私の問題があります。エンティティを拡張する際にBaseLogのinversedByフィールドを上書きする方法がわからないため、エラーメッセージが表示されます。手伝っていただけませんか。doctrine2マッピングはMappedSuperclassから継承されたinversedByフィールドを上書きします
私の説明は本当に良くないと思うので、ここでは自分のエンティティの設定。
BaseLog
/** @ORM\MappedSuperclass */
abstract class BaseLog {
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="logs")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=true, onDelete="SET NULL")
* })
*/
private $user;
}
FooLog
/** @ORM\Entity */
class FooLog extends BaseLog {
// Some additional fields
}
BarLog
/** @ORM\Entity */
class BarLog extends BaseLog {
// Some additional fields
}
ユーザー
/** @ORM\Entity */
class User {
/**
* @ORM\OneToMany(targetEntity="FooLog", mappedBy="user", cascade={"persist"})
*/
private $fooLogs;
/**
* @ORM\OneToMany(targetEntity="BarLog", mappedBy="user", cascade={"persist"})
*/
private $barLogs;
}
にはどうすればFooLog & BarLogにBaseLogさんinversedByを上書きする必要があります。
私はこの上でいくつかのマッピングエラーが発生しますが、設定: BaseLog
- BaseLog:を連想BaseLogの#ユーザーが存在しない逆側フィールドユーザ#ログを参照します。
- FooLog:関連FooLog#userは、存在しない逆サイドフィールドUser#logsを参照します。
- BarLog:関連BarLog#userは、存在しない逆サイドフィールドUser#logsを参照します。
- ユーザー:マッピングのUser#fooLogsとFooLog#userは、互いに矛盾しています。
- ユーザー:マッピングのUser#barLogsとBarLog#userは、互いに矛盾しています。
私のマッピングをソートするのを手伝ってください。
これを解決しましたか?私は同様の状況に直面している。 – hafichuk
[Doctrine 2の継承でのoverversingByマッピングのオーバーライド]の可能な複製(http://stackoverflow.com/questions/22745653/overriding-inversedby-mapping-in-doctrine-2-inheritance) – PowerKiKi
@hafichuk、重複した質問がありますそこの素晴らしい答え:http://stackoverflow.com/a/22820964/37706 – PowerKiKi