如何在chartjs laravel中foreach数据集

dauxcl2d  于 9个月前  发布在  Chart.js
关注(0)|答案(1)|浏览(63)

我有一个问题,我不能在laravel中循环数据集chartjs。下面是我的代码模型

public function umur($tanggal)
{
    return DB::table('riwayat')
        ->select('umur')
        ->where('tanggal_riwayat', $tanggal)
        ->groupBy('umur')
        ->get();
}

public function data_grafik($tanggal, $umur)
{
    return DB::table('riwayat')
        ->select('hasil_keputusan', DB::raw('COUNT(id_riwayat) as jml_riwayat'))
        ->where('tanggal_riwayat', $tanggal)
        ->where('umur', $umur)
        ->groupBy('hasil_keputusan')
        ->get();
}

这是我的控制器

$tanggal="2022-08-10";
$query = $this->m_dashboard->grafik($tanggal);
$dataa = [];
foreach ($query as $row) {
    $dataa['label'][] = $row->umur;
    $data_grafik=$this->m_dashboard->data_grafik($tanggal, $row->umur);
    foreach ($data_grafik as $value) {
        $dataa['label_1'][] = $value->hasil_keputusan;
        $dataa['jml_riwayat'][] = $value->jml_riwayat;
    }
}
    $data = [
        'chart_data' => json_encode($dataa),
    ];
    return view('admin.dashboard', $data);

这是我的观点

var cData = JSON.parse('<?php echo $chart_data; ?>');
         const labels = cData.label;
         const data = {
             labels: labels,
             datasets: [{
                 label: cData.label_1,
                 backgroundColor: 'rgb(255, 99, 132)',
                 borderColor: 'rgb(255, 99, 132)',
                 data: cData.jml_riwayat,
             }
            ]
         };

         const config = {
             type: 'bar',
             data: data,
             options: {}
         };
         const myChart = new Chart(
             document.getElementById('myChart'),
             config
         );

这是我的输出

这就是我想要的输出

提前感谢,并为偶尔的英语错误道歉

ovfsdjhp

ovfsdjhp1#

你可以在刀片中使用@foreach ... @endforeach

...
datasets: [
    @foreach ($contacts as $contact)
    {
        label: {{ json_encode($contact->name) }},
        data: {{ json_encode($contact->data) }}
    }
    @endforeach
],
...

$contact->name应该是一个类似'FirstName'的字符串。$contact->data应该是一个类似[1,2,3,4]的数组。

相关问题