@@ 103-115 (lines=13) @@ | ||
100 | /** |
|
101 | * @return array |
|
102 | */ |
|
103 | public static function getBest() |
|
104 | { |
|
105 | $result = MatchPlayer::selectRaw( |
|
106 | 'player_id, COUNT(*) as appearances , AVG(vote) avg, SUM(goals) goals' |
|
107 | )->where('goals', '>', 0) |
|
108 | ->orderByRaw('SUM(goals) DESC,COUNT(*) DESC') |
|
109 | ->groupBy('player_id')->take(self::PLAYER_STATS_LIMIT)->get()->keyBy('player_id')->toArray(); |
|
110 | $players = Player::with('team')->whereIn('id', array_keys($result))->get()->toArray(); |
|
111 | $result = array_map(function ($player) use ($result) { |
|
112 | return array_merge($player,$result[$player['id']]); |
|
113 | }, $players); |
|
114 | return $result; |
|
115 | } |
|
116 | } |
@@ 130-143 (lines=14) @@ | ||
127 | /** |
|
128 | * @return array |
|
129 | */ |
|
130 | public static function getBest() |
|
131 | { |
|
132 | $result = Match::selectRaw('winner_id, COUNT(*) as won') |
|
133 | ->whereNotNull('winner_id')->where('winner_id', '!=', 0) |
|
134 | ->orderByRaw('COUNT(*) DESC')->groupBy('winner_id') |
|
135 | ->take(self::TEAM_STATS_LIMIT)->get()->keyBy('winner_id')->toArray(); |
|
136 | $teams = Team::whereIn('id', array_keys($result))->get()->toArray(); |
|
137 | $result = array_map(function ($team) use ($result) { |
|
138 | return array_merge($team, $result[$team['id']]); |
|
139 | ||
140 | }, $teams); |
|
141 | ||
142 | return $result; |
|
143 | } |
|
144 | ||
145 | } |