0

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();

实体结构的一般要点:(单表继承)

Activity
Opinion extends Activity
Comment extends Activity
Counter extends Activity

此 dql 代码正在返回 Activity 实体,但是我希望它能够自动将它返回的实体区分为 Opinions、Comments 和 Counters。Doctrine 在其他情况下这样做没有任何问题,但由于某种原因在这里没有。(在我查询 Activity 的其他情况下,IE 会为我提供一系列意见、评论和计数器)

谁能告诉我为什么这一次,它没有自动区分它们?

4

1 回答 1

0

你问“活动”,他又回来了!根据您的架构选项是“活动”......如果你问你的选项,你会更具体,而不是得到“活动”的其他孩子......所以要区分,使用“instanceOf”!

于 2012-12-15T14:03:37.317 回答