0

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」を削除すると、必要な結果が得られることに気付きました。これは正しい方法ですか?

ありがとう、グレッグ

4

0 に答える 0