I have some problems with Doctrine. Im trying to do a leftJoin, following this question: How to do left join in Doctrine?
Here is my query:
$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());
And here are the results:
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)
....
This is an array of different objects. Events and Venues.
But I'm expecting such result:
array(
array(
0 => Event
1 => Venue,
),
array(
0 => Event
1 => Venue,
),
// ...
)
What am I doing wrong?
I tried but I could not.
I have done so:
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;
}
}