我试图做这样的事情:
/**
* @ORM\Entity
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="discr", type="string")
* @ORM\DiscriminatorMap({
* "element" = "Element",
* "comment" = "ElementComment",
* "question" = "ElementQuestion"
* })
*/
class Element {
}
/**
* @ORM\Entity
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="discr", type="string")
* @ORM\DiscriminatorMap({
* "question" = "ElementQuestion"
* "range" = "ElementQuestionRange",
* "text" = "ElementQuestionText",
* })
*/
class ElementQuestion {
}
/**
* @ORM\Entity
*/
class ElementQuestionRange {
}
/**
* @ORM\Entity
*/
class ElementQuestionText {
}
通常我应该在主类的歧义栏中有关于子类的信息。
但如果是多级继承,symfony仍会在第一级类中添加关于第三级类的信息,并且不会在第二级类中创建discrimin列。
我可以找到第三级集合,第二级集合,但如果我想找到第一级别它不起作用,因为区分对它无效。
我应该将所有第二级和第三级类添加到主类中的@ ORM / DiscriminatorMap,还是可以更好地进行?