Staram się zrobić wykres Chart.js w Laravel/PHP za pomocą wtyczki Fxcosta. Więc jestem całkiem nowy w tej społeczności, podobnie jak języki programowania. Staram się stworzyć dynamiczny wykres ze wszystkimi dniami danego miesiąca. (w listopadzie = 30 dni). W tym zadaniu stworzyłem funkcję (calcDaysOfActualMonth), która zwraca tablicę ze wszystkimi dniami bieżącego miesiąca. Mój obecny problem polega na tym, że chcę rozpocząć wykres od dnia 1, a nie od 0. Kiedy więc zmieniam indeks pętli na 1, nie mogę przekazać tablicy $labelsArr do mojego wykresu, ponieważ nie zaczyna się od 0.

        // CHART LAST MONTH
        $labelsArr = $this->calcDaysOfActualMonth();
        $chartjs = app()
        ->chartjs
        ->name('lineChartTest')
        ->type('line')
        ->size(['width' => 400, 'height' => 200])
        ->labels($labelsArr)
        ->datasets([
            [
                "label" => "Actual Month",
                'backgroundColor' => "rgba(38, 185, 154, 0.31)",
                'borderColor' => "rgba(38, 185, 154, 0.7)",
                "pointBorderColor" => "rgba(38, 185, 154, 0.7)",
                "pointBackgroundColor" => "rgba(38, 185, 154, 0.7)",
                "pointHoverBackgroundColor" => "#fff",
                "pointHoverBorderColor" => "rgba(220,220,220,1)",
                'data' => [65, 59, 55, 12, 33, 65, 59, 80, 81, 56,65, 12, 55, 12, 33, 55, 59, 80, 81, 56,65, 59, 80, 81, 56,65, 59, 80, 81, 56],
            ]
        ])
        ->options([]);

Moja funkcja próbująca utworzyć indeksowanie tablicy z 1, zaczynając od 0 działa, zaczynając od 1 nie działa:

private function calcDaysOfActualMonth(){
    $days = date("t");
    $daysArr = [];

    for($i=0; $i<$days; $i++){
        $daysArr[$i] = $i;
    }

    return $daysArr;
}

Mój wykres to ten, który obecnie zaczyna się od 0: Mój wykres bieżącego miesiąca

Przepraszam szczerze, kiedy to naprawdę trywialny problem. I mam nadzieję, że podałem wystarczająco dużo informacji! Z góry bardzo dziękuję.

0
Taranis 22 listopad 2018, 13:24

1 odpowiedź

Najlepsza odpowiedź

Tak, to był banalny problem. Tak więc odpowiedź Magnusa Erikssona pomogła mi rozwiązać ten problem:

Było to: $daysArr[] = $i + 1;

Za pomocą dd() $daysArr

Wykres z indeksem 1

Bardzo dziękuję za szybką odpowiedź!

0
Taranis 22 listopad 2018, 13:37