createQueryBuilder() - > where()问题。绑定变量和标记不匹配

时间:2013-06-23 03:40:15

标签: php symfony orm doctrine-orm

我遇到了doctrine2和symfony2的问题。我正在尝试创建一个Group存储库,我继续收到此错误:

参数号无效:绑定变量数与令牌数不匹配

我查看了doctrine2语法,找出为什么我的createQueryBuilder对象给我带来了where()辅助函数的麻烦,看起来我正在做的一切正确。贝娄是我的代码:

<?php

namespace Blogger\BlogBundle\Entity\Repository;

use Doctrine\ORM\EntityRepository;

/**
 * GroupRepository
 *
 * This class was generated by the Doctrine ORM. Add your own custom
 * repository methods below.
 */
class GroupRepository extends EntityRepository
{
    public function getGroupByName($name)
    {
        return $this->createQueryBuilder('g')
            ->select('g')
            ->where('g.name=:' . $name)
            ->getQuery()
            ->getSingleResult();
    }
}

1 个答案:

答案 0 :(得分:5)

使用setParameter()绑定查询参数是成功的关键...详细了解here

public function getGroupByName($name)
{
    return $this->createQueryBuilder('g')
        ->where('g.name = :name')
        ->setParameter('name', $name)
        ->getQuery()
        ->getSingleResult();
}