什么是PHP Doctrine MongoDB ODM中的鉴别器字段冲突?

时间:2018-05-25 12:09:39

标签: php mongodb doctrine doctrine-odm

错误

是什么意思
  

判别字段" x" in" y"与映射字段的冲突"名称"属性。

被抛出?

更具体地说,我的意思是这个条件:

    if ($this->discriminatorField !== null && $this->discriminatorField === $mapping['name']) {
        throw MappingException::discriminatorFieldConflict($this->name, $this->discriminatorField);
    }

Referal Code

1 个答案:

答案 0 :(得分:2)

判别字段不应映射到属性,因此您看到的异常。理论上,开发人员不应该对鉴别器字段的值感兴趣,因为对于ODM来说,确定应该实例化哪个对象或者在单个集合继承的情况下如何查询文档是有用的。在userland中,您应该担心的是您正在操作的类的类型。

现在对于某些历史记录,异常是在BETA-10 in 2013中引入的,但在将鉴别器映射到属性之前也无法实现,提交似乎会加强防范并引入一个不那么混乱的异常。鉴于6年前的变化,我现在说,通过映射的属性,你永远无法获得鉴别器字段。