带联接的原则查询生成器返回实体数组,而不是分组结果


Doctrine query builder with join returns array of entities instead of grouped results

我对教义有一些问题。我试图做一个左加入,在这个问题之后:如何在教义中做左加入?

这是我的查询:

$qb = $this->getEntityManager()->createQueryBuilder();
    $qb
        ->select('a', 'u')
        ->from('Application'Entity'Event', 'a')
        ->leftJoin(
            'Application'Entity'Venue',
            'u',
            'Doctrine'ORM'Query'Expr'Join::WITH,
            'a.venue_id = u.id'
        )
        ->orderBy('a.event_datetime', 'DESC');
    var_dump($qb->getQuery()->getResult());

以下是结果:

array (size=4)
0 => 
object(Application'Entity'Event)[483]
  protected 'id' => int 8
  protected 'artist_id' => int 4
  protected 'venue_id' => int 1246
  protected 'name' => string 'Vlasta Redl' (length=11)
1 => 
object(Application'Entity'Venue)[477]
  protected 'id' => int 1246
  protected 'name' => string 'Malostranská beseda' (length=20)
  ...
2 => 
object(Application'Entity'Event)[468]
  protected 'id' => int 7
  protected 'artist_id' => int 3
  protected 'venue_id' => int 761
  protected 'name' => string 'Positive Mind' (length=13)
3 => 
object(Application'Entity'Venue)[485]
  protected 'id' => int 761
  protected 'name' => string 'Divadlo pod lampou' (length=18)
  ....

这是一个不同对象的数组。活动和场地。

但我期待这样的结果:

array(
    array(
        0 => Event
        1 => Venue,
    ),
    array(
        0 => Event
        1 => Venue,
    ),
    // ...
)

我做错了什么?

我试过了,但我做不到。

我已经这样做了:

foreach($result as $object){
            if(get_class($object)=='Panel'PollBundle'Entity'PollProfile'){
                $pollProfile[] = $object;
            }
            else if (get_class($object)=='Panel'PollBundle'Entity'Poll') {
                $poll[] = $object;
            }
        }