Doctrine 2 WHERE IN clause using a collection of entities
A pull request I made about this has been merged into Doctrine ORM 2.5, so you can simply do this now:
$q = $this->createQueryBuilder('v') ->select('v') ->andWhere('v.workingHours IN (:workingHours)') ->setParameter('workingHours', $workingHours);;
The latest version of Doctrine now allows collection parameters and will automatically make use of the primary key of each of the collection entries.
Try to set IDs as parameter
$ids = array();foreach($workingHours as $w) { $ids[] = $w->getId();}
Then
$q = $this->createQueryBuilder('v') ->select('v') ->andWhere('v.workingHours IN (:workingHours)') ->setParameter('workingHours', $ids);;
I suggest using DQL in this way:
$qb = $this->createQueryBuilder('v') ->andWhere($qb->expr()->in('v.workingHours', $ids));;
And let Doctrine handle the expression & quotation work for you.