首页 > 解决方案 > 在 Laravel 中使用 chartjs 的问题

问题描述

我正在尝试使用数据库中的数据在我的视图中呈现图表。我遇到的问题是:

GET http://localhost:8000/yamazummi/chart 500 (Internal Server Error)

这是我第一次将 ChartJs 与 Laravel 一起使用。我不知道我可能哪里出错了。

这是我添加的所有代码:

控制器:

public function chart(){
    $data = DB::table('bandelete')
                ->join('posto', 'posto.id', '=', 'bandelete.posto_id')
                ->join('silhueta', 'silhueta.id', '=', 'bandelete.silhueta_id')
                ->select('posto.cod as pcod', 'silhueta.name as sname', DB::raw('SUM(va + nva) as tempo'))
                ->where('posto_id', '=', 1)
                ->get();

    return response()->json($data);
}

查看:chartjs 脚本:

var url = "{{url('yamazummi/chart')}}";
    var silhuetas = new Array();
    var tempo = new Array();

    $(document).ready(function(){
        $.get(url, function(response){
            response.forEach(function(data){
                silhuetas.push(data.sname);
                tempo.push(tempo);
            });
            var ctx = document.getElementById("canvas").getContext('2d');
                var myChart = new Chart(ctx, {
                    type:'bar',
                    data:{
                        labels:silhuetas,
                        datasets:[{
                            label:'Tempo',
                            data:tempo,
                            borderWidth:1
                        }]
                    },
                    options:{
                        scales: {
                            yAxes:[{
                                ticks:{
                                    beginAtZero:true
                                }
                            }]
                        }
                    }
                });
        });
    });

如果我渲染:

<canvas id="canvas" height="280" width="600"></canvas>

我的路线:

Route::get('yamazummi/chart', 'BandeleteController@chart');

链接到我的应用程序的脚本:

<script src="https://cdnjs.com/libraries/Chart.js" charset="utf-8"></script>

编辑:

当我打开路线时,我收到错误:

SQLSTATE[42000]:语法错误或访问冲突:1140 如果没有 GROUP BY 子句,则混合没有 GROUP 列的 GROUP 列 (MIN()、MAX()、COUNT()、...) 是非法的 (42000)

标签: javascriptphplaravelcharts

解决方案


推荐阅读