5

このエラーがあります:

「注意:未定義のオフセット:C:\ wamp \ www \ Videotheque \ vendor \ doctrine \ lib \ Doctrine \ ORM\QueryBuilder.php行240で0」

私はオンラインでビデオコレクションを作成しています。映画とジャンルの2つのエンティティがあります。GenRerepositoryメソッドで、関数findAll()をジャンルに関連付けられた映画の数に再定義しようとしました。

これは関数です:

public function myFindAll()
{
    $genres = $this->_em->createQueryBuilder('g')
                        // leftJoin because I need all the genre
                        ->leftJoin('g.films', 'f')
                        ->addSelect('COUNT(f)')
                        ->groupBy('g')
                        ->getQuery()
                        ->getArrayResult();
    // $genres contains all the genres and the associated movies
    return ($genres);
}
4

3 に答える 3

6

Repository クラスは、エンティティ用に既に構成されている QueryBuilder を作成するためのメソッドを提供するため、直接配置できます。

$this->createQueryBuilder('g')
于 2012-08-02T08:32:23.610 に答える
0

これを試して:

public function myFindAll()
{
    $qb = $this->_em->createQueryBuilder('g');
    $qb->leftJoin('g.films', 'f')
       ->select($qb->expr()->count('f')) // Use an expression
       ->groupBy('g.id')                 // Specify the field
    ;

    $genres = $qb->getQuery()->getArrayResult();

    // $genres contains all the genres and the associated movies
    return ($genres);
}
于 2012-08-01T09:22:54.280 に答える