2010-12-18 17 views
5

BenDoctrine 2 DQL: Adlandırılmış parametre yeniden kullanılamaz mı?

$query = $em->createQuery('select p from Application\Models\Project p 
          WHERE p.owner = :user 
          OR :user MEMBER OF p.collaborators'); 
$query->setParameter('user', $user); 

hatasını "array_combine(): Both parameters should have an equal number of elements"

aşağıda yerine

gibi bir şey yaparak sorunu çözebilirsiniz olsun iki kez kullanılır ben, aşağıda böyle bir şey yapmak ' :user' fark edemez bulmak
$query = $em->createQuery('select p from Application\Models\Project p 
          WHERE p.owner = :user 
          OR :user1 MEMBER OF p.collaborators'); 

cevap

3

Eğer X? Kullanırsanız bunu yapabilirsiniz.

$query = $em->createQuery('select p from Application\Models\Project p 
          WHERE p.owner = ?0 
          OR ?0 MEMBER OF p.collaborators'); 
$query->setParameters(array($user)); 
İlgili konular