1

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();
    }
}
4

1 に答える 1

5

を使用してクエリ パラメータをバインドするsetParameter()ことが成功の鍵です。詳細については、こちらを参照してください

public function getGroupByName($name)
{
    return $this->createQueryBuilder('g')
        ->where('g.name = :name')
        ->setParameter('name', $name)
        ->getQuery()
        ->getSingleResult();
}
于 2013-06-23T03:59:21.757 に答える