Php 条令(无效参数编号:绑定变量的数量与令牌的数量不匹配)

Php 条令(无效参数编号:绑定变量的数量与令牌的数量不匹配),php,symfony,doctrine-orm,token,dql,Php,Symfony,Doctrine Orm,Token,Dql,我未能用条令调试错误。我有以下代码,旨在获取特定所有者的所有帐户(表“所有者”和“帐户”之间存在一对多映射关系): 这段代码工作正常,可以为id为11的所有者获取所有帐户。现在,作为调试的一部分,我刚刚更改了所有者id的确定,如下所示: $id = 11; $em = $this->getDoctrine()->getManager(); $query = $em->createQuery('SELECT a FROM AcmeUserBundle:Account a WHER

我未能用条令调试错误。我有以下代码,旨在获取特定所有者的所有帐户(表“所有者”和“帐户”之间存在一对多映射关系):

这段代码工作正常,可以为id为11的所有者获取所有帐户。现在,作为调试的一部分,我刚刚更改了所有者id的确定,如下所示:

$id = 11;
$em = $this->getDoctrine()->getManager();
$query = $em->createQuery('SELECT a FROM AcmeUserBundle:Account a WHERE a.owner=:id');
$accounts = $query->getResult();

我收到以下错误消息“无效参数编号:绑定变量的数量与令牌的数量不匹配”。有谁能给我一些关于“绑定变量”和“令牌”的概念的高级解释,同时让我知道如果我想在php控制器的其他地方定义“id”,应该使用什么代码?谢谢。

您需要为查询设置参数$id,否则生成器无法知道您的$id:

$query->setParameter('id', $id);
正如错误所说,您设置的参数绑定变量的数量与“:id”等标记的数量不匹配

$query->setParameter('id', $id);