在Laravel 5.1中实现Charts.js

时间:2015-07-02 06:04:48

标签: laravel charts laravel-5 chart.js

嗨,我一直在想网络,得到的答案无法找到。我试图使用Charts.js显示图表。

在我的路线中:

Route::get('surveys/chart', 'AboutController@projectChartData');

在我的AboutController中:我使用 json_encode()将数据传递给我的视图

public function projectChartData()
    {
        $devlist = json_encode(DB::table('surveys')
            ->select(DB::raw('MONTHNAME(updated_at) as month'), DB::raw("DATE_FORMAT(updated_at,'%Y-%m') as monthNum"),
                DB::raw('count(*) as projects'))
            ->groupBy('monthNum')
            ->get());

        return view('pages.chart',compact('devlist'));
    }

在我看来:

<canvas id="projects-graph" width="1000" height="400"></canvas>
<script type="text/javascript">
    $(function(){
        $.getJSON("surveys/chart", function (result) {
            alert('');
            var labels = [],data=[];
            for (var i = 0; i < result.length; i++) {
                labels.push(result[i].batch);
                data.push(result[i].created_at);
            }

            var buyerData = {
                labels : labels,
                datasets : [
                    {
                        fillColor : "rgba(240, 127, 110, 0.3)",
                        strokeColor : "#f56954",
                        pointColor : "#A62121",
                        pointStrokeColor : "#741F1F",
                        data : data
                    }
                ]
            };
            var buyers = document.getElementById('projects-graph').getContext('2d');
            new Chart(buyers).Line(buyerData, {
                bezierCurve : true
            });

        });

    });
</script>

问题它没有显示图表。但是,如果我只是返回不使用json_encode的数据,它会给我array()但是chart.js需要json。

我真的很难在laravel 5中实现图表(morris,lavacharts,highcharts,charts.js),因为谷歌没有太多合适的版本。如果有人能给我一个很好的包我可以使用。非常感谢..

1 个答案:

答案 0 :(得分:0)

您会将数据传递给视图,在您的视图中,您只需 json_encode ,就像这样{!! json_encode($devlist) !!}