Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 未在与Doctrine2的多态关联中找到字段_Php_Doctrine_Doctrine Orm - Fatal编程技术网

Php 未在与Doctrine2的多态关联中找到字段

Php 未在与Doctrine2的多态关联中找到字段,php,doctrine,doctrine-orm,Php,Doctrine,Doctrine Orm,我有一个多态关联(类表继承),我需要使用DQL查询特定子类的实体,这可以使用WHERE子句中的“实体的x实例”来完成。现在我需要为该子类设置特定的条件,但我得到以下错误: “班级人员没有名为student_field_1的关联” Person=父类 Employee=子类 学生=儿童班 你有没有办法告诉我这个人实际上是个学生,让我把学生字段放在哪里?听起来“映射超类”更适合你的尝试,因为它不需要父/子之间的显式链接,它只是简单的继承 通过类表继承,您需要提供通过键链接两个实体的鉴别器映射 “子

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

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

Person=父类

Employee=子类

学生=儿童班

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

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

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


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

如果您只查询学生,那么为什么不这样做呢

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

我看不出映射的超类对查询有什么帮助。顺便说一句,我需要这3个表,因为这就是db现在的方式,它实际上是一个关联。例如:car.person(可以是员工或学生)哦,对不起。你所问的问题有一个特性要求:是的,本杰明,这就是问题所在。该功能未实现。知道有什么解决办法吗?不幸的是,我想不出有什么好的解决办法。。。一个非有效且复杂的方法是返回所有实体,其中
Entity.person是学生的实例
,然后手动过滤掉返回的实体。但在您的情况下,我想我更愿意检查是否可以重构我的模型,以便我的实体直接拥有一个学生关系,而不是一个人。那么在执行查询之前,如何“动态地”将关系从Person(映射中)更改为Student?可能吗?您当前的(yml)模式是什么样子的?您可以发布查询生成器代码吗?我也有类似的问题,但我还是设法解决了。需要知道您是否也有同样的问题;)