0

我在使用 Doctrine MongoDB ODM 时遇到问题。场景很简单(我认为)。我有一组具有 COLLECTION_PER_CLASS 继承模型(基础、产品等)的文档。这一切都很好,我可以像往常一样持久化对象。

/**
 * @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