我正在使用奏鸣曲的管理员列表来显示项目表。每个项目都有许多项目站点,它们有5种不同的状态类型。状态类型1-4被认为是活动的而5是不活动的。
我希望能够通过其拥有的活动项目站点来订购我的项目列表。
我在Projects Entity上创建了一个方法,如下所示:
public function getActiveSitesCount()
{
$activeSites = array_filter($this->sites->toArray(), function(ProjectSite $site) {
return $site->getStatus() <= 4;
});
return count($activeSites);
}
当作为列添加到列表视图时,它返回正确数量的项目站点,但是当我将其添加到datagridValues
时,它没有任何效果,例如:
protected $datagridValues = array(
'_page' => 1,
'_sort_order' => 'DESC',
'_sort_by' => 'activeSitesCount'
);
我在_sort_by
中尝试了不同的变体,例如getActiveSitesCount
,但它似乎默认为id ASC
。
我还尝试在COUNT...ORDER BY
函数中添加createQuery
,它提供了相同的默认行为。
是否可以使用不是排序依据?
的字段的值