Laravel图表使用Ajax刷新

时间:2019-07-20 00:02:22

标签: laravel charts chart.js

我正在尝试使用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

谢谢。

1 个答案:

答案 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]);