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

Dr.*_*all 1 php orm symfony doctrine-orm

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

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

我查看了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();
    }
}
Run Code Online (Sandbox Code Playgroud)

Nic*_*ich 5

使用绑定您的查询参数setParameter()是成功的关键,在这里...阅读更多关于它在这里.

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