我对教义有一些问题。我试图做一个左加入,在这个问题之后:如何在教义中做左加入?
这是我的查询:
$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;
}
}