Symfony Sonata排序管理列表使用子字段上的聚合

Symfony Sonata排序管理列表使用子字段上的聚合,symfony,sonata-admin,symfony-sonata,sonata,Symfony,Sonata Admin,Symfony Sonata,Sonata,我使用sonata的管理列表来显示项目表。每个项目都有许多项目站点,它们有5种不同的状态类型。状态类型1-4被视为激活,而状态类型5被视为非激活 我想能够按活动项目站点的数量对我的项目列表进行排序 我在Projects实体上创建了一个方法,如下所示: public function getActiveSitesCount() { $activeSites = array_filter($this->sites->toArray(), function(ProjectSite $s

我使用sonata的管理列表来显示项目表。每个项目都有许多项目站点,它们有5种不同的状态类型。状态类型1-4被视为激活,而状态类型5被视为非激活

我想能够按活动项目站点的数量对我的项目列表进行排序

我在Projects实体上创建了一个方法,如下所示:

public function getActiveSitesCount()
{
  $activeSites = array_filter($this->sites->toArray(), function(ProjectSite $site) {
    return $site->getStatus() <= 4;
  });

  return count($activeSites);
}
我在
\u sort\u by
中尝试了不同的变体,例如
getActiveSiteScont
,但它似乎默认返回到
id ASC

我还尝试在
createQuery
函数中添加一个
COUNT…ORDER BY
,该函数提供了相同的默认行为

是否可以使用不是排序依据中的字段的值

protected $datagridValues = array(
  '_page' => 1,
  '_sort_order' => 'DESC',
  '_sort_by' => 'activeSitesCount'
);