"all" // "statistic_type" => "gls" // "similar_past_matches" => "none" // "accuracy" => "0.5" // "player_on_field" => "all" // "league_id" => "26" // "team_id" => "571991" // "start_date" => null // "end_date" => null // "tm_player_id" => null // 'gls' => 'Goals', // goals // 'crn' => 'Corner', // 'fls' => 'Fouls commited', // fouls // 'ofs' => 'Offside', // offsides // 'crd' => 'Cards', // 'snt' => 'Shot on target', // shots_on_target // 'tsh' => 'Total shots', // shots_off_target $league_id = (int) $filter['league_id'] ?? 0; $team_id = (int) $filter['team_id'] ?? 0; $tm_player_id = (int) $filter['tm_player_id'] ?? 0; $team_position = $filter['team_position']; $player_on_field = $filter['player_on_field']; $statistic_type = $filter['statistic_type'] ?? 0; $similar_past_matches = $filter['similar_past_matches'] ?? 0; $start = $filter['start_date'] ?? 0; $end = $filter['end_date'] ?? 0; if (! $league_id) { return []; } if (! $team_id) { return []; } if (! $tm_player_id) { return []; } /** * STATTISTIC DATA */ $res = StatistikoEvent::where('league_id', $league_id) ->where(function ($query) use ($team_id, $team_position) { switch ($team_position) { case 'home': return $query->where('home_id', '=', $team_id); case 'away': return $query->where('away_id', '=', $team_id); default: return $query->where('home_id', '=', $team_id) ->orWhere('away_id', '=', $team_id); } }) ->when($matches_played, function ($query) use ($matches_played) { return $query->whereIn('match_id', $matches_played); })->when($start, function ($query) use ($start) { return $query->where('starttime', '>=', $start); })->when($end, function ($query) use ($end) { return $query->where('starttime', '<=', $end); })->first(); $labels = []; $datasets = []; foreach ($res as $key => $value) { $val = 0; if (isset($value->event->starttime)) { $labels[] = $value->event->starttime->format('d.M.y'); switch ($statistic_type) { case 'gls': $val = (int) $value['goals']; break; case 'crn': $val = (int) 0; break; case 'fls': $val = (int) $value['fouls']; break; case 'ofs': $val = (int) $value['offsides']; break; case 'crd': $val = (int) $value['card_yellow'] + $value['card_red'] + $value['card_yellowred']; break; case 'snt': $val = (int) $value['shots_on_target']; break; case 'tsh': $val = (int) $value['shots_off_target']; break; } } $datasets[] = $val; } $data = [ 'datasets' => [ [ 'label' => ucfirst($team_position), 'data' => $datasets, 'fill' => true, 'tension' => 0.5, 'borderColor' => '#36A2EB', ], ], 'labels' => $labels, ]; self::$last_query = $data; return $data; } }