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 コードはアクティビティ エンティティを返していますが、意見、コメント、およびカウンターに返されるエンティティを自動的に識別したいと考えています。Doctrine は他の例では問題なくこれを行いますが、何らかの理由でここではそうではありません。(つまり、アクティビティを要求するクエリを作成する他のケースでは、意見、コメント、およびカウンターの配列が得られます)

今回は自動的に差別しない理由を誰か教えてもらえますか?

4

1 に答える 1

0

あなたが「活動」を尋ねると、彼は彼らに戻ります!スキーマによると、オプションは「アクティビティ」です...オプションを尋ねると、より具体的になり、「アクティビティ」の他の子は取得されません...区別するには、「instanceOf」を使用してください!

于 2012-12-15T14:03:37.317 に答える