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');
Was it helpful?

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
scroll top