未找到与Doctrine2多态性相关的字段


Not finding field in polymorphic association with Doctrine2

我有一个多态关联(类表继承),我需要使用DQL来查询特定子类的实体,这可以使用WHERE子句中的"x INSTANCE of Entity"来完成。现在我需要为该子类设置特定的条件,但我得到了这个错误:

"Class Person没有名为student_field_1的关联"

人员=父类

员工=子级

Student=儿童班

你有没有办法告诉Doctrine这个人实际上是一个学生,并允许我把学生字段放在哪里?

听起来"映射超类"更适合您的尝试,因为它不需要父/子之间的显式链接,它只是简单的继承。

http://docs.doctrine-project.org/projects/doctrine-orm/en/2.0.x/reference/inheritance-mapping.html#mapped-超类

通过类表继承,您需要提供通过键链接两个实体的鉴别器映射。

"子类的表应该通过外键约束链接到父类的表"

如果你只是在查询学生,为什么不直接这样做呢?

SELECT s FROM Student s WHERE s.student_field_1 = ...