0

私はエンティティ1を持っています:Upload、それはとのoneToMany関係がありますcomments

Upload用のカスタムリポジトリがあり、最もコメントの多いアップロードを見つけたいです。

だから私がするとき

/**
 * @param $sortBy String
 * @param $limit Int
 */
public function getWeekTopUploads($sortBy,$limit){



    $qb = $this->getEntityManager()->createQueryBuilder();

    $qb->add('select', 'u')
        ->add('from', 'TrackerMembersBundle:Upload u')
        // ->where('u.created')
        ->orderBy('u.comments', 'DESC')
        ->setMaxResults( $limit );


    $query = $qb->getQuery();

    $result = $query->getResult();

    return $result;



}

エラーが発生します:

[Semantical Error] line 0, col 55 near 'comments DES': Error: Invalid PathExpression. StateFieldPathExpression or SingleValuedAssociationField expected.
500 Internal Server Error - QueryException

コメント数による順序付けを受け入れたくないようですが、これをどのように解決できますか、またはクエリビルダーの適切な書き直しは何でしょうか?

4

1 に答える 1

0

「u」をパラメーターとして createQueryBuilder() 関数に渡し、UploadRepository で getWeekTopUploads() 関数を宣言する必要があります。

$qb = $this->createQueryBuilder('u');
        ->where('u.created' >= new \DateTime("1 week ago"))
        ->orderBy('u.comments', 'DESC')
        ->setMaxResults($limit)
        ->getQuery()->getResult();

return $qb;
于 2012-08-11T11:20:47.727 に答える