Symfony2/Doctrine2: OrderBy count of another Entity (ManytoO



我有实体 1: Upload,它与commentsoneToMany关系

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

所以当我这样做时

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

似乎不想接受按评论数排序,我该如何解决这个问题,或者查询构建器的正确重写是什么?

你必须将 '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;

相关内容

  • 没有找到相关文章

最新更新