簡體   English   中英

yii2如何通過COUNT通過關系訂購?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM