经过多次尝试,我想我终于明白了文档.
然后,我需要你的帮助..我不明白为什么Doctrine告诉我这个错误:
然后,我需要你的帮助..我不明白为什么Doctrine告诉我这个错误:
Invalid parameter number: number of bound variables does not match
number of tokens
这是我的代码:
$qb = $this->em->createQueryBuilder(); $qb->select('m') ->from('Entities\Marque','m') ->leftJoin('m.magasin','ma') ->where('m.nom = :marque AND ma.nom LIKE :magasin') ->setParameter('marque',$marque) ->setParameter('magasin','%'.$matchesNumber[1].'%'); $results = $qb->getQuery()->getArrayResult();
提前感谢您的回答.
如果您不小心使用多个where(),这种情况也会发生在我身上.
$em = $this->getEntityManager(); $query = $em->createQueryBuilder() ->from('AppBundle:SomeEntity','s') ->select('s') ->where('s.foo = :foo') ->where('s.bar = :bar') // <- HERE ->setParameter('foo','Foo Value') ->setParameter('bar','Bar Value');
应该:
$em = $this->getEntityManager(); $query = $em->createQueryBuilder() ->from('AppBundle:SomeEntity','s') ->select('s') ->where('s.foo = :foo') ->andWhere('s.bar = :bar') // <- CHANGE TO andWhere() ->setParameter('foo','Bar Value');
希望这有助于某人.