synthese = new Synthese(); } public function index() { // Répartition sinistres $claims = $this->synthese->getClaims(); $tabclaims = [ 'claimsLabels' => array_column($claims, 'claimsLabels'), 'claimsValues' => array_column($claims, 'claimsValues') ]; // Evolution des sinistres $claimsMonth = $this->synthese->getClaimsMonth(); $claimsSingleMonth = $this->synthese->getClaimsSingleMonth(); $tabclaimsMonth = [ 'months' => array_column($claimsMonth, 'months'), 'monthlyClaims' => array_column($claimsMonth, 'monthlyClaims'), 'singleClaims' => array_column($claimsSingleMonth, 'singleClaims') ]; // Sinistralité $claimsLossRatio = $this->synthese->getClaimsLossRatio(); $tabLossRatio = [ 'lossRatioLabels' => array_column($claimsLossRatio, 'months'), 'lossRatioValues' => array_column($claimsLossRatio, 'ratio') ]; // Debug : vérifier si le paramètre 'api' est bien reçu die("API mode: " . ($_GET['api'] ?? 'non défini')); // --- Mode API JSON brut --- if (isset($_GET['api']) && $_GET['api'] == '1') { header('Content-Type: application/json'); echo json_encode([ 'claims' => $tabclaims, 'claimsMonth' => $tabclaimsMonth, 'lossRatio' => $tabLossRatio ], JSON_NUMERIC_CHECK); exit; } // --- Mode Vue Ajax HTML --- // Utilisation de constantes JSON pour sécuriser l'insertion dans le JavaScript // JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP empêchent le bris du HTML/JS $optionsJson = JSON_NUMERIC_CHECK | JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP; $this->genererVueAjax([ 'dataTabClaims' => json_encode($tabclaims, $optionsJson), 'dataTabClaimsMonth' => json_encode($tabclaimsMonth, $optionsJson), 'dataLossRatio' => json_encode($tabLossRatio, $optionsJson) ]); } }