我无法使用Doctrine调试错误。我有以下代码,旨在获取特定所有者的所有帐户(表格之间存在一对多的映射关系;#34;所有者"以及"帐户"):
$em = $this->getDoctrine()->getManager();
$query = $em->createQuery('SELECT a FROM AcmeUserBundle:Account a WHERE a.owner=11');
$accounts = $query->getResult();
此代码可以正常运行并为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();
我收到以下错误消息"参数号无效:绑定变量的数量与令牌数量不匹配"。任何人都可以给我一些关于"绑定变量"的概念的高级解释。和#34;令牌"以及让我知道我应该使用什么代码如果我想定义" id"在我的PHP控制器的其他地方感谢。
答案 0 :(得分:2)
您需要将参数$ id设置为查询,否则构建器无法知道您的$ id:
$query->setParameter('id', $id);
由于错误表示作为您设置的参数的绑定变量的数量与':id'等标记的数量不匹配。