[英]yii2 How to order via relation by COUNT?
我有一個組織者,可以舉辦比賽讓玩家參加。
所以我有桌子的組織者,比賽,參與,球員。
我在組織者模型中建立了一種關系,該模型為我提供了在該組織者組織的錦標賽中曾經付款的所有玩家。
public function getTournaments()
{
return $this->hasMany(Tournament::className(), ['organizer' => 'id'])->where(['hasBeenAudited' => 1]);
}
public function getParticipations()
{
return $this->hasMany(Participation::className(), ['tournament' => 'id'])
->via('tournament')->where(['didShowUp' => 1]);
}
public function getPlayers() {
return $this->hasMany(Player::className(), ['id' => 'player'])
->via('participation');
}
所以現在我可以執行$model->players
並檢索曾經為該組織玩過的所有玩家。
我現在想根據一個玩家為該組織參加的錦標賽次數來訂購$model->players
,以便為該組織參加最多錦標賽的玩家會出現在頂部。
我怎么做?
您無需進行“分組依據”查詢。 試試這個
$model->getPlayers()
->with('tournaments')
->select(['organization.name', 'player.name'])
->groupBy(['organization.name', 'player.name'])
->orderBy(['count(tournaments.id)'=>SORT_DESC])
->all();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.