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
Activity
| Field | Original Value | New Value |
|---|---|---|
| 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( 5, 234, 23497 ); 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 |
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 |
| Status | Open [ 1 ] | Resolved [ 5 ] |
| Resolution | Fixed [ 1 ] |
| Resolution | Fixed [ 1 ] | |
| Status | Resolved [ 5 ] | Reopened [ 4 ] |
| Status | Reopened [ 4 ] | Closed [ 6 ] |
| Resolution | Invalid [ 6 ] |