嗨,我一直在想网络,得到的答案无法找到。我试图使用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),因为谷歌没有太多合适的版本。如果有人能给我一个很好的包我可以使用。非常感谢..
答案 0 :(得分:0)
您会将数据传递给视图,在您的视图中,您只需 json_encode ,就像这样{!! json_encode($devlist) !!}