2010-12-18 105 views
5

我發現我不能做類似下面,請注意「:user」使用了兩次Doctrine 2 DQL:無法重用命名參數?

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

我得到的錯誤「array_combine(): Both parameters should have an equal number of elements

我可以做一些像下面代替

解決問題
$query = $em->createQuery('select p from Application\Models\Project p 
          WHERE p.owner = :user 
          OR :user1 MEMBER OF p.collaborators'); 

回答

3

如果您使用?X您可以做到這一點。

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