php – Doctrine setParameter和无效的参数号

前端之家收集整理的这篇文章主要介绍了php – Doctrine setParameter和无效的参数号前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
经过多次尝试,我想我终于明白了文档.
然后,我需要你的帮助..我不明白为什么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');

希望这有助于某人.

猜你在找的PHP相关文章