0

我有实体 1: Upload,它oneToManycomments

我有一个上传的自定义存储库,我想找到评论最多的上传。

所以当我这样做的时候

/**
 * @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 回答