没有找到与Doctrine2多态关联的字段

时间:2012-03-23 06:06:35

标签: php doctrine doctrine-orm

我有一个多态关联(Class Table Inheritance),我需要使用DQL来查询特定子类的实体,这些实体可以使用WHERE子句中的“x INSTANCE OF Entity”来完成。现在我需要为该子类设置特定条件,但是我收到了这个错误:

“班级人员没有名为student_field_1的关联”

Person = Parent Class

员工=儿童班

学生=儿童班

有什么方法可以告诉Doctrine这个人实际上是一个学生并允许我把学生字段放在WHERE中吗?

2 个答案:

答案 0 :(得分:0)

听起来像“Mapped Superclass”会更适合您尝试做的事情,因为它不需要父/子之间的显式链接,它只是简单的继承。

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

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

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

答案 1 :(得分:0)

如果你只是在询问学生,那你为什么不这样做?

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