Doctrine 条令鉴别器不具有歧视性

Doctrine 条令鉴别器不具有歧视性,doctrine,doctrine-orm,Doctrine,Doctrine Orm,DQL代码: $dql = "SELECT a, FIELD(a.id, ".$implodedIds.") as HIDDEN field " . "FROM \activity\models\Entities\Activity a " . "WHERE a.id IN (".$implodedIds.") " . "ORDER BY field ASC "; $em = \Zend_Registry::get('em'); $doctrineConfig = $em->getCo

DQL代码:

$dql = "SELECT a, FIELD(a.id, ".$implodedIds.") as HIDDEN field " 
. "FROM \activity\models\Entities\Activity a "
. "WHERE a.id IN (".$implodedIds.") "
. "ORDER BY field ASC ";

$em = \Zend_Registry::get('em');

$doctrineConfig = $em->getConfiguration();
$doctrineConfig->addCustomStringFunction('FIELD', 'DoctrineExtensions\Query\Mysql\Field');

$query = $em->createQuery($dql);
$docResults = $query->getResult();
实体结构的一般要点:(单表继承)

这个dql代码返回活动实体,但是我希望它能够自动区分返回到意见、注释和计数器中的实体。条令在其他情况下没有任何问题,但由于某种原因在这里没有。(也就是说,在其他情况下,当我询问活动时,它会给我一系列的意见、评论和反驳)


有人能告诉我为什么这一次,它不会自动识别它们吗?

你问“活动”,他就会返回到活动中!根据你的模式,选项是“活动”。。。如果你问你的选择,你是更具体的,而不是得到其他孩子的“活动”。。。所以要区分,请使用“instanceOf”

然而,考虑到我问这个家伙的问题,可能会有更好的水平继承,有一个抽象映射的超类和“option”、“counter”、“comment”、“activity”作为子类
Activity
Opinion extends Activity
Comment extends Activity
Counter extends Activity