【问题标题】:createQueryBuilder()->where() issue. bound variables and tokens do not matchcreateQueryBuilder()->where() 问题。绑定变量和标记不匹配
【发布时间】:2013-06-19 21:36:36
【问题描述】:

我遇到了关于学说 2 和 symfony2 的问题。我正在尝试创建一个组存储库,但我继续收到此错误:

无效的参数号:绑定变量的数量与标记的数量不匹配

我查看了学说 2 语法,以找出为什么我的 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();
    }
}

【问题讨论】:

    标签: php symfony orm doctrine-orm


    【解决方案1】:

    使用setParameter() 绑定您的查询参数是成功的关键……阅读更多相关信息here。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-03
      • 2014-03-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多