我正在尝试使用laravel图表库在网页(laravel)中实现图表。 目前,我能够使用
填充数据{!! $chart->container() !!}
在视图中。
我想编写一个js函数来每分钟刷新一次图表数据。
在laravel图表文档中,他们提供了类似以下的代码,因此它将向视图返回我们需要的值。
chart = new SampleChart;
$chart->dataset('Sample Test', 'bar', [3,4,1]);
$chart->dataset('Sample Test', 'line', [1,4,3]);
return $chart->api();
js
var original_api_url = {{ $chart->id }}_api_url;
{{ $chart->id }}_refresh(original_api_url);
我不了解的是,在何处使用这些函数以及如何使用这些刷新函数来刷新我的图表? 由此,我们是否必须替换{{$ chart-> id}} _ api_url;的_api_url部分;上面提到的js?
我是laravel的新手。如果您熟悉使用laravel图表,请让我知道如何解决此问题。
文档网址 https://charts.erik.cat/api_charts.html#building-the-chart
谢谢。
答案 0 :(得分:1)
因此,要使用刷新功能,您需要一个控制器,该控制器具有一种将数据作为json返回的方法。
因此创建一个新的控制器方法:
public function chartApi() {
$chart = new SampleChart;
$chart->dataset('Sample Test', 'bar', [3,4,1]);
$chart->dataset('Sample Test', 'line', [1,4,3]);
return $chart->api();
}
并为其添加一条路线:
Route::get('chart-data', ['uses' => 'YourController@chartApi']);
然后,在呈现图表视图的控制器中:
$chart = new SampleChart;
$api = url('/chart-data');
$chart->labels(['test1', 'test2', 'test3'])->load($api)
return view('yourview', ['chart' => $chart]);