Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Invalid
-
Affects Version/s: 2.3
-
Fix Version/s: None
-
Component/s: ORM
-
Labels:None
-
Environment:Linux, Symfony 2, PHP 5.3.10
Description
I'm going by the docs, trying to get a WHERE IN type of query working with the query builder.
I've got a flat array of IDs, e.g. something like this:
$IDs = array( 228052, 265635, 344498, 391761, 329203, 317911, 305961, 299939, 249429, 344706 );
I've tried the following ways to get this working:
- using the Expr class:
$qb->add( 'where', $qb->expr()->in( 'c.id', ':IDs' ));
$qb->setParameter( 'IDs', $IDs );
- alternatively:
$qb->add( 'where', $qb->expr()->in( 'c.id', $IDs ));
- even direct DQL:
$qb->where( 'c.id IN (:IDs)' );
$qb->setParameter( 'IDs', $IDs );
The generated DQL looks fine:
SELECT c FROM MyEntity c WHERE c.id IN('228052', '265635', '344498', '391761', '329203', '317911', '305961', '299939', '249429', '344706')
But when I call execute() on that query, all these variations give me the following error:
Expected argument of type "Doctrine\ORM\QueryBuilder", "array" given