Doctrine 2 DQL: Cannot reuse named parameter?
-
11-10-2019 - |
Question
I find that I cannot do something like below, notice ':user
' is used twice
$query = $em->createQuery('select p from Application\Models\Project p
WHERE p.owner = :user
OR :user MEMBER OF p.collaborators');
$query->setParameter('user', $user);
I get the error "array_combine(): Both parameters should have an equal number of elements
"
I can fix the problem by doing something like below instead
$query = $em->createQuery('select p from Application\Models\Project p
WHERE p.owner = :user
OR :user1 MEMBER OF p.collaborators');
Solution
if you use ?X you can do that.
$query = $em->createQuery('select p from Application\Models\Project p
WHERE p.owner = ?0
OR ?0 MEMBER OF p.collaborators');
$query->setParameters(array($user));
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow