Doctrine 2 DQL:无法重用命名参数?

Jie*_*eng 5 php dql doctrine-orm

我发现我不能做类似下面的事情,注意' :user'使用了两次

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

我收到错误" 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');
Run Code Online (Sandbox Code Playgroud)

JCM*_*JCM 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));
Run Code Online (Sandbox Code Playgroud)