countFilmsVusBy($this->getUser()); $filmsFavoris = $filmRepository->countFilmsFavorisBy($this->getUser()); $commentairesParMois = $commentaireRepository->countCommentairesParMois(); $chart = $chartBuilderInterface->createChart(Chart::TYPE_DOUGHNUT); $chart->setData([ 'labels' => ['January', 'February', 'March', 'April', 'May', 'June', 'July'], 'datasets' => [ [ 'label' => 'My First dataset', 'backgroundColor' => 'rgb(255, 99, 132)', 'borderColor' => 'rgb(255, 99, 132)', 'data' => [0, 10, 5, 2, 20, 30, 45], ], ], ]); $chart->setOptions([ 'scales' => [ 'y' => [ 'suggestedMin' => 0, 'suggestedMax' => 100, ], ], ]); $chartDatesAjout = $chartBuilderInterface->createChart(Chart::TYPE_LINE); $ajoutsParMois = $filmRepository->countAjoutsParMois(); $months = []; foreach ($ajoutsParMois as $data) { $months[$data['month']]['nbFilms'] = $data['entryCount']; } foreach ($commentairesParMois as $data) { $months[$data['month']]['nbComs'] = $data['entryCount']; } ksort($months); foreach($months as &$mois) { if(!isset($mois['nbFilms'])) { $mois['nbFilms'] = 0; } if (!isset($mois['nbComs'])) { $mois['nbComs'] = 0; } } $chartDatesAjout->setData([ 'labels' => array_keys($months), 'datasets' => [ [ 'label' => 'Nombre de films ajoutés par mois', 'data' => array_map(fn($value): int => $value['nbFilms'], $months) ], [ 'label' => 'Nombre de commentaires ajoutés par mois', 'data' => array_map(fn($value): int => $value['nbComs'], $months) ], ] ]); $chart->setOptions([ 'scales' => [ 'y' => [ 'suggestedMin' => 0, 'suggestedMax' => 100, ], ], ]); return $this->render('dashboard/index.html.twig', [ 'chart' => $chart, 'chartDatesAjout' => $chartDatesAjout, ]); } }