Doctrine MongoDB ODM に問題があります。シナリオは非常に単純です (と思います)。COLLECTION_PER_CLASS 継承モデル (Base、Product など) を持つドキュメントのセットがあります。これはすべてうまく機能し、通常どおりオブジェクトを永続化できます。
/**
* @ODM\Document(collection="content_base")
* @ODM\InheritanceType("COLLECTION_PER_CLASS")
*/
class Base {
/**
* @ODM\Document(collection="content_products")
*/
class Product extends Base {
今、別のドキュメント (アイテム) があり、継承されたドキュメントへの ReferenceOne を作成したいと思います。
/**
* @ODM\ReferenceOne(targetDocument="Base")
*/
private $content;
Doctrine ClassLoader がクラス Base が再宣言されていると文句を言うので、これは私が問題を抱えているところです:
Fatal error: include(): Cannot redeclare class content\documents\types\base in /vendor/composer/ClassLoader.php on line 183
なぜこれが問題になるのか、それともこれを行う正しい方法は何ですか?
アップデート
ReferenceOne アノテーションから「targetDocument」を削除すると、必要な結果が得られることに気付きました。これは正しい方法ですか?
ありがとう、グレッグ